摘要:已知Application类中的openDocument方法采用了模板方法(TemplateMethod)设计模式,该方法定义了打开文档的每一个主要步骤,如下所示:1.首先检查文档是否能够被打开,若不能打开,则给出出错信息并返回;2.创建文档对象;3.通过文档对象打开文档;4.通过文档对象读取文档信息;5.将文档对象加入到Application的文档对象集
已知Application类中的openDocument方法采用了模板方法(Template Method)设计模式,该方法定义了打开文档的每一个主要步骤,如下所示:
1.首先检查文档是否能够被打开,若不能打开,则给出出错信息并返回;
2.创建文档对象;
3.通过文档对象打开文档;
4.通过文档对象读取文档信息;
5.将文档对象加入到Application的文档对象集合中。
【C++代码】
#include <iostream>
#include <vector>
using namespace std;
class Document{
public:
void save(){ /*存储文档数据,此处代码省略*/ }
void open(string docName){ /* 打开文档,此处代码省略 */ }
void close(){ /* 关闭文档,此处代码省略*/ }
virtual void read(string docName) = 0;
};
class Appplication{
private:
vector < (1) > docs; /*文档对象集合*/
public:
bool canOpenDocument(string docName){
/*判断是否可以打开指定文档,返回真值时表示可以打开,返回假值表示不可打开,此处代码省略*/
}
void addDocument(Document * aDocument){
/*将文档对象添加到文档对象集合中*/
docs.push_back( (2) );
}
virtual Document * doCreateDocument() = 0; /*创建一个文档对象*/
void openDocument(string docName){ /*打开文档*/
if ( (3) ){
cout << "文档无法打开 !" << endl;
return;
}
(4) adoc = (5) ;
(6) ;
(7) ;
(8) ;
}
}; [答案讨论]
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19]
软考备考资料免费领取
去领取