阅读以下说明和Java代码,回答问题[说明]在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合将小对象组合,成复杂的对象。以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一个标题、一串字符以及一些有项目符号的项目。Builder类规定组成文件的方法,Director类利用这个方法产生一份具体的文件。图6-1显示了各个类间的关系。以下是Java语言实现,能够正确编译通过。[Java代码]//Builder. java文件public (1) class Builder {public abstract void makeTitle(String title);public abstract void makeString(String str);public abstract void makeItems(String[] items);public abstract Object getResult();}//Director. java文件public class Director{private (2) builder;public Director(Builder builder){this. builder = builder;}public Object construct(){builder.makeTitle("Greeting");builder.makeString("从早上到白天结束");builder.makeItems(new String[]{"早安", "午安",});builder.makeString("到了晚上");builder.makeItems(new String[]("晚安", "好梦",});return builder.getResult();}}//TextBuilder.java文件public class TextBuilder (3) Builder{private StringBuffer buffer = new StringBuffer();public void makeTitle(String title){buffer.append("『" + title + "』"\n\n");}public void makeString(String str){buffer.append('■' + str + "\n\n ");}public void makeItems(String[] items){for(int i = 0; i (4) ; i++){buffer.append('·' + items[i] + "\n");}buffer.append("\n");}public Object getResult(){return buffer.toString();}}//Main.java文件public class Main {public static void main(String[] args) {Director director = new Director(new TextBuilder());String result = (String)director. (5) ;System.out.println(result);

阅读以下说明和Java代码,回答问题

[说明]

在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合将小对象组合,成复杂的对象。

以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一个标题、一串字符以及一些有项目符号的项目。Builder类规定组成文件的方法,Director类利用这个方法产生一份具体的文件。图6-1显示了各个类间的关系。

以下是Java语言实现,能够正确编译通过。

[Java代码]

//Builder. java文件

public (1) class Builder {

public abstract void makeTitle(String title);

public abstract void makeString(String str);

public abstract void makeItems(String[] items);

public abstract Object getResult();

}

//Director. java文件

public class Director{

private (2) builder;

public Director(Builder builder){

this. builder = builder;

}

public Object construct(){

builder.makeTitle("Greeting");

builder.makeString("从早上到白天结束");

builder.makeItems(new String[]{"早安", "午安",});

builder.makeString("到了晚上");

builder.makeItems(new String[]("晚安", "好梦",});

return builder.getResult();

}

}

//TextBuilder.java文件

public class TextBuilder (3) Builder{

private StringBuffer buffer = new StringBuffer();

public void makeTitle(String title){

buffer.append("『" + title + "』"\n\n");

}

public void makeString(String str){

buffer.append('■' + str + "\n\n ");

}

public void makeItems(String[] items){

for(int i = 0; i< (4) ; i++){

buffer.append('·' + items[i] + "\n");

}

buffer.append("\n");

}

public Object getResult(){

return buffer.toString();

}

}

//Main.java文件

public class Main {

public static void main(String[] args) {

Director director = new Director(new TextBuilder());

String result = (String)director. (5) ;

System.out.println(result);


相关考题:

以下关于组合模式的叙述错误的是( )。 A.组合模式对叶子对象和组合对象的使用具有一致性B.组合模式可以通过类型系统来对容器中的构件实施约束,可以很方便地保证在一个容器中只能有某些特定的构件C.组合模式将对象组织到树形结构中,可以用来描述整体与部分的关系D.组合模式使得可以很方便地在组合体中加入新的对象构件,客户端不需要因为加入新的对象构件而更改代码

阅读以下技术说明及Java代码,将Java程序中(1)~(5)空缺处的语句填写完整。[说明]在一公文处理系统中,开发者定义了一个公文类OfficeDoc,其中定义了公文具有的属性和处理公文的相应方法。当公文件的内容或状态发生变化时,关注此OfficeDoc类对象的相应的DocExplorer对象都要更新其自身的状态。一个OfficeDoc对象能够关联一组DocExplorer对象。当OfficeDoc对象的内容或状态发生变化时,所有与之相关联的DocExplorer对象都将得到通知,这种应用被称为Observer(观察者)模式。以下代码采用Java语言实现,能够正确编译通过。[Java代码]

阅读以下说明和Jrdva代码,将应填入(n)处的字句写在对应栏内。[说明]在销售系统中常常需要打印销售票据,有时需要在一般的票据基础上打印脚注。这样就需要动态地添加一些额外的职责。如下展示了Decorator(修饰)模式。SalesOrder对象使用一个SalesTicket对象打印销售票据。图6-1显示了各个类间的关系。以下是Java语言实现,能够正确编译通过。[图6-1][Java代码]//Component.java文件public (1) class Component {abstract publ ic void prtTicket();}//salesTicket.java文件public class SalesTicket extends Component{public void prtTicket(){//Sales ticket printing code hereSystem.out.printin("SalesTicket");}}//Decorator.java文件publ ic abstract class Decorator extends Component{public void prtTicket(){if(myComp!=null)myComp.prtTicket();}private (2) myComp;public Decorator(Component myC){myComp=myC;}}//Footer.java文件public class Footer extends Decorator {public Footer(Component myC){(3);}public void prtTicket(){(4);prtFooter();}publ ic void prtFooter(){//place printing footer code hereSystem.out.println("Footer");}}//salesorder.java文件public class SalesOrder{void prtTicket(){Component myST;myST=new Footer( (5) );//Print Ticket with footers as neededmyST.prtTicket();}}(1)

阅读以下函数说明和Java代码,将应填入(n)处的字句写在对应栏内。[说明]很多时候,希望某些类只有一个或有限的几个实例,典型解决方案是所谓单身(Singleton)模式。但在多线程情况下,Singleton模式有可能出现问题,需要进行同步检查。如果对“检查singleton对象是否已经创建”进行同步,则存在严重的瓶颈,所有的线程都必须等待检查对象是否存在。解决方式是一种称为Double-Checked-Locking模式,其意图是将非必须的锁定优化掉,同步检查最多只发生一次,因此不会成为瓶颈。以下是Java语言实现,能够正确编译通过。[Java代码]public class USTax {private static USTax instance=null;(1) USTax(){}private (2) static void doSync(){if(instance==null){System.out.println("实例不存在,创建实例..");instance=(3);System.out.println("实例创建成功");}else{System.out.println("实例已被创建了");}}public static USTax getInstance(){if(instance==null){System.out.println("实例暂时不存在");(4);//同步控制}else{System.out.println("实例已经存在");}return (5);}}(1)

创建型设计模式抽象了实例化过程,帮助一个系统独立于如何创建、组合和表示它的那些对象。以下( )模式是创建型模式。A.组合(Composite) B.构建器(Builder)C.桥接(Bridge) D.策略(Strategy)

模式将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创 建不同的表示。以下( 47 )情况适合选用该模式。 ①抽象复杂对象的构建步骤 ②基于构建过程的具体实现构建复杂对象的不同表示 ③一个类仅有一个实例 ④一个类的实例只能有几个不同状态组合中的一种A.生成器(Builder)B.工厂方法(Factory Method)C.原型(Prototype)D.单例( Singleton)

创建型设计模式抽象了实例化过程,帮助一个系统独立于如何创建、组合和表示的那些对象。以下(48)模式是创建型模式。A.组合(Composite)B.构建器(Builder)C.桥接(Bridge)D.策略(Strategy)

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某网站采用ASP+SQL Server开发,系统的数据库名为gldb,数据库服务器IP地址为202.12.34.1。打开该网站主页,如图5-1所示:【问题1】(8分,每空1分)以下是该网站主页部分的html代码,请根据图5-1将(1)~(8)的空缺代码补齐。 【问题2】(2分,每空1分)该网站采用ASP编写程序代码,在ASP内置对象中,application对象和session对象可以创建存储空间用来存放变量和对象的引用。如果在页面中设置访客计数器,应采用上述的 (9) 对象:如果编写购物车组件,应采用上述的 (10) 对象。【问题3】(5分,每空1分)以下是该网站进行数据库连接的代码conn.asp,请根据题目说明完成该程序,将答案填写在答题纸的对应位置。

某模式将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。以下( )情况适合选用该模式。①抽象复杂对象的构建步骤②基于构建过程的具体实现构建复杂对象的不同表示③一个类仅有一个实例 ④一个类的实例只能有几个不同状态组合中的一种A.①②B.②③C.③④ D.①④