( )模式将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创 建不同的表示。A.生成器(Builder) B.工厂方法(FactoryMethod) C.原型(Prototype) D.单例(Singleton)
( )模式将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创 建不同的表示。
A.生成器(Builder)
B.工厂方法(FactoryMethod)
C.原型(Prototype)
D.单例(Singleton)
B.工厂方法(FactoryMethod)
C.原型(Prototype)
D.单例(Singleton)
参考解析
解析:生成器模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
相关考题:
关于对象、类、继承、多态的描述,不正确的是:()。A.对象包含对象表示、对象状态和对象行为三个基本要素B.类是对象的实例,对象是类的模板C.继承是表示类之间的层次关系D.多态使得同一个操作在不同类中有不同的实现方式
图5-6UML类图所示意的设计模式的意图是(47)。A.为特定的客户(或情况)提供特定系列的对象B.定义一系列的算法并将它们一个个封装起来,使它们可以相互替换C.将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示D.定义一个用于创建对象的接口,让子类决定实例化哪一个类
在程序运行过程中,(49)将方法与特定的对象动态地联系在一起,使得不同的对象在使用同样的方法时,可以因对象的状态不同而产生不同的行为,从而使得方法对具体的对象具有个性。A.消息传递机制B.对象自身引用C.消息传递机制和对象自身引用D.参数多态
创建型设计模式抽象了实例化过程,帮助一个系统独立于如何创建、组合和表示它的那些对象。以下( )模式是创建型模式。A.组合(Composite) B.构建器(Builder)C.桥接(Bridge) D.策略(Strategy)
模式将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创 建不同的表示。以下( 47 )情况适合选用该模式。 ①抽象复杂对象的构建步骤 ②基于构建过程的具体实现构建复杂对象的不同表示 ③一个类仅有一个实例 ④一个类的实例只能有几个不同状态组合中的一种A.生成器(Builder)B.工厂方法(Factory Method)C.原型(Prototype)D.单例( Singleton)
某模式将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。以下( )情况适合选用该模式。①抽象复杂对象的构建步骤②基于构建过程的具体实现构建复杂对象的不同表示③一个类仅有一个实例 ④一个类的实例只能有几个不同状态组合中的一种A.①②B.②③C.③④ D.①④
阅读下列说明和 C++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】生成器( Builder)模式的意图是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。图 5-1 所示为其类图。【C++代码】#include #include using namespace std;class Product {private:? ??string partA, partB;public:Product() {?? }? ? ?voidsetPartA(const string}???? voidsetPartB(const string}//? 其余代码省略};class Builder {public:??????? (1)?? ;virtual void buildPartB()=0;??????? (2)?? ;};class ConcreteBuilder1 : public Builder {private:Product*?? product;public:ConcreteBuilder1() {product = new Product();???? }??? voidbuildPartA() {????? (3)???? ("Component A"); }??? voidbuildPartB() {????? (4)???? ("Component B"); }Product* getResult() { return product; }//? 其余代码省略};class ConcreteBuilder2 : public Builder {? ??/*??? 代码省略??? */};class Director {private:?Builder* builder;public:? ?Director(Builder* pBuilder) { builder= pBuilder;}???? voidconstruct() {? ? ? ? ? ? ? (5)???? ;? ? ?//? 其余代码省略????? }//? 其余代码省略};int main() {Director* director1 = new Director(new ConcreteBuilder1());?director1->construct();? ?delete director1;? ??return 0;
阅读下列说明和 Java 代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】生成器( Builder)模式的意图是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。图 6-1 所示为其类图。阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】???? 生成器(Builder)模式的意图是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。图5-1所示为其类图。?【C++代码】#include #include using namespace std;class Product {private:?string partA, partB;public:?Product() {?? }? ?void setPartA(const string}???? void setPartB(const string}? ?//? 其余代码省略};class Builder {public:? ? ??(1)??;?virtual void buildPartB()=0;? ? ?(2)??;};class ConcreteBuilder1 : public Builder {private:?Product*?? product;public:ConcreteBuilder1() {product = new Product();???? }void buildPartA() {????? (3)???? ("ComponentA"); }?void buildPartB() {????? (4)???? ("ComponentB"); }??Product* getResult() { return product; }//? 其余代码省略};class ConcreteBuilder2 : public Builder {? ??? ? ? ?/*??? 代码省略??? */};class Director {private:? ??Builder* builder;public:??Director(Builder* pBuilder) { builder= pBuilder;}? ??void construct() {????????????????? (5)???? ;?????????????? //? 其余代码省略? ?}??//? 其余代码省略};int main() {? ? ??Director* director1 = new Director(new ConcreteBuilder1());? ?director1->construct();? ? ??delete director1;? ? ?return 0;【Java代码】import jav(6)A.util.*;class Product {? ? ? ?private String partA;? ? ? ?private String partB;? ? ? ??public Product() {}? ? ??public void setPartA(String s) { partA = s; }? ? ? ?public void setPartB(String s) { partB = s; }}interface Builder {? ?public?????? (1)???? ;? ??public void buildPartB();? ? ??public?????? (2)???? ;}class ConcreteBuilder1 implements Builder {? ? ? ?private Product product;? ? ? ?public ConcreteBuilder1() { product = new Product();?? }? ? ? ??public void buildPartA() {????????(3)??("Component A"); }public void buildPartB() {???? ????(4)?? ("Component B"); }? ? ??public Product getResult() { return product;}}class ConcreteBuilder2 implements Builder {?? ? ? ? ?//? 代码省略}class Director {? ? ? ?private Builder builder;? ? ? ?public Director(Builder builder) {this.builder = builder; }public void construct() {? ? ? ? ? ? ? ? ? (5)???? ;? ? ? ? ? ? ? //? 代码省略? ? ??}}class Test {? ? ??public static void main(String[] args) {???????????????? Director director1 = newDirector(new ConcreteBuilder1());???????????????? director1.construct();? ? ? ??}
设计模式基于面向对象技术,是人们在长期的开发实践中良好经验的结晶,提供了一个简单、统一的描述方法,使得人们可以复用这些软件设计办法、过程管理经验。按照设计模式的目的进行划分,现有的设计模式可以分为创建型、()和行为型三种类型。其中()属于创建型模式,(请作答此空 )属于行为型模式。()模式可以将一个复杂的组件分成功能性抽象和内部实现两个独立的但又相关的继承层次结构,从而可以实现接口与实现分离。 A.DecoratorB. CompositeC. MementoD. Builder
MVC模式的优点体现在()。A、将表示层和处理层完全分开,提高了可靠性B、可以多种view去访问相同的model,提高了复用性和适应性C、清晰的分层同样使得代码清晰、程序的可维护性提高D、不同的程序员可以各司其职,增加开发速度
以下意图哪个是用来描述PROXY(代理)?()A、用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象B、运用共享技术有效地支持大量细粒度的对象C、为其他对象提供一种代理以控制对这个对象的访问D、将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
以下意图哪个是用来描述BRIDGE(桥接)?()A、提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类B、将抽象部分与它的实现部分分离,使它们都可以独立地变化C、将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示D、动态地给一个对象添加一些额外的职责
以下意图哪个是用来描述BUILDER(生成器)?()A、定义一个用于创建对象的接口,让子类决定实例化哪一个类B、将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示C、保证一个类仅有一个实例,并提供一个访问它的全局访问点D、运用共享技术有效地支持大量细粒度的对象
建造者模式的优点有哪些()A、分步骤构建一个复杂的对象B、应对“复杂对象各个部分”的频繁需求变动C、用户使用不同的具体建造者即可得到不同的产品对象D、如果产品的内部变化复杂,可能会导致需要定义很多具体建造者类来实现这种变化,导致系统变得很庞大E、如果产品之间的差异性很大,则不适合使用建造者模式,因此其使用范围受到一定的限制
关于模式适用性,在以下情况可以使用builder模式?()A、当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时B、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时C、当构造过程必须允许被构造的对象有不同的表示时D、一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为
单选题关于模式适用性,在以下情况可以使用builder模式?()A当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时B当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时C当构造过程必须允许被构造的对象有不同的表示时D一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为
单选题关于适配器模式(Adapter)说法正确的是()A将抽象部分与实现部分分离,使得它们两部分可以独立地变化B将一个接口转换成为客户想要的另一个接口C组合多个对象形成树形结构以表示整体-部分的结构层次。其对单个对象和组合对象的使用具有一致性D为其他对象提供一个代理或地方以控制对这个对象的访问
多选题MVC模式的优点体现在()。A将表示层和处理层完全分开,提高了可靠性B可以多种view去访问相同的model,提高了复用性和适应性C清晰的分层同样使得代码清晰、程序的可维护性提高D不同的程序员可以各司其职,增加开发速度
单选题以下意图哪个是用来描述PROXY(代理)?()A用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象B运用共享技术有效地支持大量细粒度的对象C为其他对象提供一种代理以控制对这个对象的访问D将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
单选题以下选项哪个是用来描述组合模式()A为其他对象提供一种代理以控制对这个对象的访问B运用共享技术有效地支持大量细粒度的对象C将对象组合成树形结构以表示“部分-整体”的层次结构D将一个复杂对象的构建与它的表示分离
单选题以下意图哪个是用来描述INTERPRETER(解释器)?()A将抽象部分与它的实现部分分离,使它们都可以独立地变化B给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子C将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示D为其他对象提供一种代理以控制对这个对象的访问
单选题以下意图哪个是用来描述策略模式()A将抽象部分与它的实现部分分离,使它们都可以独立地变化B将一个复杂对象的构建与它的表示分离C定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换