2008年下半年軟件設(shè)計(jì)師下午試卷[17]

軟件設(shè)計(jì)師 責(zé)任編輯:mikewood 2008-12-21

添加老師微信

備考咨詢

加我微信

摘要:已知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 << "文檔無(wú)法打開 !" << endl;
 return;
  }
?。?)  adoc = (5)  ;
?。?) ;
?。?) ;
?。?) ;
 }
}; [答案討論]

[1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]  [10]  [11]  [12]  [13]  [14]  [15]  [16]  [17]  [18]  [19]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

軟考備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

!
咨詢?cè)诰€老師!