2008年下半年软件设计师下午试卷[17]
已知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]
| 软考各科备考资源 | ||
| 资源名称 | 获取方式 | 资源链接 |
| 2026下半年软考各科考试真题汇总 | 免费下载 | 点击获取 |
| 2026年5月高项各科真题汇总 | 免费刷题 | 点击获取 |
| 2026年10月第二批集成基础知识真题 | 免费下载 | 点击获取 |
| 2026年下半年 软件设计师基础知识真题 | 免费下载 | 点击获取 |
| 2026上半年软考各科真题答案汇总 | 免费下载 | 点击获取 |
| 【历年真题】软考各科历年真题答案解析汇总 | 免费刷题 | 点击刷题 |
| 更多软考备考资料请点此查看 | ||

