摘要:已知Application類中的openDocument方法采用了模板方法(TemplateMethod)設(shè)計(jì)模式,該方法定義了打開文檔的每一個(gè)主要步驟,如下所示:1.首先檢查文檔是否能夠被打開,若不能打開,則給出出錯(cuò)信息并返回;2.創(chuàng)建文檔對(duì)象;3.通過文檔對(duì)象打開文檔;4.通過文檔對(duì)象讀取文檔信息;5.將文檔對(duì)象加入到Application的文檔對(duì)象集
已知Application類中的openDocument方法采用了模板方法(Template Method)設(shè)計(jì)模式,該方法定義了打開文檔的每一個(gè)主要步驟,如下所示:
1.首先檢查文檔是否能夠被打開,若不能打開,則給出出錯(cuò)信息并返回;
2.創(chuàng)建文檔對(duì)象;
3.通過文檔對(duì)象打開文檔;
4.通過文檔對(duì)象讀取文檔信息;
5.將文檔對(duì)象加入到Application的文檔對(duì)象集合中。
【C++代碼】
#include <iostream>
#include <vector>
using namespace std;
class Document{
public:
void save(){ /*存儲(chǔ)文檔數(shù)據(jù),此處代碼省略*/ }
void open(string docName){ /* 打開文檔,此處代碼省略 */ }
void close(){ /* 關(guān)閉文檔,此處代碼省略*/ }
virtual void read(string docName) = 0;
};
class Appplication{
private:
vector < (1) > docs; /*文檔對(duì)象集合*/
public:
bool canOpenDocument(string docName){
/*判斷是否可以打開指定文檔,返回真值時(shí)表示可以打開,返回假值表示不可打開,此處代碼省略*/
}
void addDocument(Document * aDocument){
/*將文檔對(duì)象添加到文檔對(duì)象集合中*/
docs.push_back( (2) );
}
virtual Document * doCreateDocument() = 0; /*創(chuàng)建一個(gè)文檔對(duì)象*/
void openDocument(string docName){ /*打開文檔*/
if ( (3) ){
cout << "文檔無法打開 !" << endl;
return;
}
(4) adoc = (5) ;
(6) ;
?。?) ;
(8) ;
}
}; [答案討論]
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19]
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬道題
已有25.02萬小伙伴參與做題