问答题
[说明] 在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合将小对象组合,成复杂的对象。
以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一个标题、一串字符以及一些有项目符号的项目。Builder类规定组成文件的方法,Director类利用这个方法产生一份具体的文件。图6-1显示了各个类间的关系。
【正确答案】construct()
【答案解析】Builder类含有多个abstract方法,故应声明为abstract,空(1)应填abstract。
由构造函数中的语句this.builder=builder;及形参声明Builder builder,可判知空(2)应填Builder。
由类图知,TextBuilder是Builder的子类,因此空(3)应填extends,声明继承关系。
来看空(4),此处for循环是将items中的对象添加到buffer中,空(4)处是循环终止条件:下标达到items的长度,故应填items.length。
空(5)是真正进行文件的构造,应填construct()。事实上,Director类:仅提供了该方法,自然是调用该方法。