问答题

【说明】 已知某类库开发商捉供了一套类库,类库中定义了Application类和Document类,它们之间的关系如下图所示,其中,Application类表示应用程序自身,而Document类则表示应用程序打开的文档。Application类负责打开一个已有的以外部形式存储的文档,如一个文件,一旦从该文件中读出信息后,它就由一个Document对象表示。
当开发一个具体的应用程序时,开发者需要分别创建自己的Application和Document子类,例如上图中的类MyApplication和类MyDocument,并分别实现Application和 Document类中的某些方法。 已知Application类中的openDocument方法采用了模板方法(Template Method)设计模式,该方法定义了打开文档的每一个主要步骤,如下所示: 1.首先检查文档是否能够被打开,若不能打开,则给出出错信息并返回; 2.创建文档对象; 3.通过文档对象打开文档; 4.通过文档对象读取文档信息; 5.将文档对象加入到Application的文档对象集合中。 【Java代码】 abstract class Document{    public void save(){/*存储文档数据,此处代码省略*/ )   public void open(String docName){ /*打开文档,此处代码省略*/)    public void close(){ /*关闭文档,此处代码省略*/)    public abstract void read(String docName); }; abstract class Appplication{   private Vector< (1) > docs; /*文档对象集合*/    public boolean canOpenDocument(String docName){         /*判断是否可以打开指定文档,返回真值时表示可以打开,          返回假值表示不可打开,此处代码省略*/    }    public void addDocument(Document aDocument){        /*将文档对象添加到文档对象集合中*/          docs.add( (2) );   }    public abstract Document doCreateDocument();/*创建一个文档对象*/   public void openDocument(String docName){/*打开文档*/         if ( (3) ) {            System.out.println(“文档无法打开!”);           return;        }         (4) adoc= (5) ;           (6) ;         (7) ;         (8) ;   } };

【参考答案】

(1)Document (2)aDocument (3)!canOpenDocument(docName)(4)Do......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

问答题
【说明】已知某类库开发商提供了一套类库,类库中定义了Application类和Document类,它们之间的关系如下图所示。其中,Application类表示应用程序自身,而Document类则表示应用程序打开的文档。Application类负责打开一个已有的以外部形式存储的文档,如一个文件,一旦从该文件中读出信息后,它就由一个Document对象表示。当开发一个具体的应用程序时,开发者需要分别创建自己的Application和Document子类,例如上图中的类MyApplication和类MyDocument,并分别实现Application和 Document类中的某些方法。已知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) ;}};