阅读下列函数说明和C++代码,回答问题 [说明] 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合,将小对象组合成复杂的大对象。 以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一个标题、一串字

admin2012-02-20  29

问题 阅读下列函数说明和C++代码,回答问题
[说明]
   在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合,将小对象组合成复杂的大对象。
   以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一个标题、一串字符以及一些有项目符号的项目。Builder类规定组成文件的方法,Director类利用这个方法产生一份具体的文件。图5-1显示了各个类间的关系。
   [图5-1]

以下是C++语言实现,能够正确编译通过。
   [C++代码]
   class Builder{
   public:
   virtual void makeTitle(string title) = 0;
   virtual void makestring(string str) = 0;
   virtual void makeItems(  (1)  items) = 0;
   virtual string getResult() = 0;
   };
   class Director{
   private:
     (2)  builder;
   public:
   Director(Builder *builder){
   this->builder = builder;
   }
   string construct(){
   vectoritems;
   items.push_back("早安"); items.push_back("午安");
   builder->makeTitle("Greeting");
   builder->makeString("从早上到白天结束");
   builder->makeItems(items);
   builder->makeString("到了晚上");
     (3)  ;//清空items向量
   items.push_back("晚安"); items.push_back("好梦");
   builder->makeItems(items);
   return builder->getResult();
   }
   };
   class TextBuilder : public  (4)  {
   private:
   string buffer;
   public:
   TextBuilder(){
   buffer = " ";
   }
   void makeTitle(string title){
   buffer += "=======================================\n";
   buffer += "『" + title + "』\n";
   buffer += "\n";
   }
   void makeString(string str){
   buffer += "■" + str + "\n";
   buffer += "\n";
   }
   void makeItems(vectoritems){
   vector::iterator it;
   for(it = items.begin(); it != items.end(); it++){
   buffer += "." + *it + "\n";
   }
   buffer += "\n";
   }
   string getResult(){
   buffer += "========================\n";
   return buffer;
   }
   };
   int main()
   {
   Director *director = new Director(new TextBuilder());
   string result = (string)director-)  (5)  ;
   cout<    return 0;
   }

选项

答案vector Builder* items.clear() Builder construct()

解析
转载请注明原文地址:https://jikaoti.com/ti/23i7FFFM
0

相关试题推荐
最新回复(0)