● 下面给出了四种设计模式的作用: 外观(Fa?ade) :为子系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用; 装饰(Decorate):当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能; 单件(Singleton) :保证一个类仅有一个实例,并提供一个访问它的全局访问点; 模板方法(Template Method) :在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现。 请根据下面叙述的场景选用适当的设计模式。若某面向对象系统中的某些类有

题目

● 下面给出了四种设计模式的作用: 外观(Fa?ade) :为子系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用; 装饰(Decorate):当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能; 单件(Singleton) :保证一个类仅有一个实例,并提供一个访问它的全局访问点; 模板方法(Template Method) :在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现。 请根据下面叙述的场景选用适当的设计模式。若某面向对象系统中的某些类有且只有一个实例,那么采用(30) 设计模式能够有效达到该目的;该系统中的某子模块需要为其他模块提供访问不同数据库系统(Oracle、SQL Server、DB2 UDB 等)的功能,这些数据库系统提供的访问接口有一定的差异,但访问过程却都是相同的,例如,先连接数据库、再打开数据库、最后对数据进行查询,(31) 设计模式可抽象出相同的数据库访问过程;系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类(Component),分别显示文本和图片内容,现需要构造带有滚动条、或者带有黑色边框、或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,但希望最多只增加三个类,(32) 设计模式可以实现该目的。

(30)A. 外观 B. 装饰 C. 单件 D. 模板方法

(31)A. 外观 B. 装饰 C. 单件 D. 模板方法

(32)A. 外观 B. 装饰 C. 单件 D. 模板方法


相似考题
更多“● 下面给出了四种设计模式的作用: 外观(Fa?ade) :为子系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用; 装饰(Decorate):当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能; 单件(Singleton) :保证一个类仅有一个实例,并提供一个访问它的全局访问点; 模板方法(Template Method) :在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现。 请根据下面叙述的场景选用适当的设计模式。若某面向对象系统中的某些类有”相关问题
  • 第1题:

    已知某子系统为外界提供功能服务,但该子系统中存在很多粒度十分小的类,不便被外界系统直接使用,采用(41)设计模式可以定义一个高层接口,这个接口使得这一子系统更加容易使用;当不能采用生成子类的方法进行扩充时,可采用(42)设计模式动态地给一个对象添加一些额外的职责。

    A.Facade(外观)

    B.Singleton(单件)

    C.Participant(参与者)

    D.Decorator(装饰)


    正确答案:A

  • 第2题:

    ● 当不适合采用生成子类的方法对已有的类进行扩充时,可以采用 (43) 设计模式动态地给一个对象添加一些额外的职责;当应用程序由于使用大量的对象,造成很大的存储开销时,可以采用 (44) 设计模式运用共享技术来有效地支持大量细粒度的对象;当想使用一个已经存在的类,但其接口不符合需求时,可以采用 (45) 设计模式将该类的接口转换成我们希望的接口。

    (43)

    A. 命令(Command)

    B. 适配器(Adapter)

    C. 装饰(Decorate)

    D. 享元(Flyweight)

    (44)

    A. 命令(Command)

    B. 适配器(Adapter)

    C. 装饰(Decorate)

    D. 享元(Flyweight)

    (45)

    A. 命令(Command)

    B. 适配器(Adapter)

    C. 装饰(Decorate)

    D. 享元(Flyweight)


    正确答案:C,D,B


  • 第3题:

    创建型设计模式抽象了实例化过程,它分为面向类和面向对象两种。其中,( )模式是保证一个类仅有一个实例,并提供一个访问它的全局访问点。

    A.工厂(Factory)
    B.构建器(Builder)
    C.原型(Prototype)
    D.单例(Singleton)

    答案:D
    解析:
    单例模式有以下特点:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。总之,选择单例模式就是为了避免不一致状态,避免政出多头。

  • 第4题:

    ( )设计模式能够动态地给一个对象添加一些额外的职责而无须修改此对象的结构;( )设计模式定义一个用于创建对象的接口,让子类决定实例化哪一个类;欲使一个后端数据模型能够被多个前端用户界面连接,采用(请作答此空)模式最适合。

    A. 装饰器
    B. 享元
    C. 观察者
    D. 中介者

    答案:D
    解析:
    组合(Composite)模式将对象组合成树形结构以表示“部分一整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。适用于:想表示对象的部分—整体层次结构;希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。外观(Facade)模式为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。适用于:要为一个复杂子系统提供一个简单接口时,子系统往往因为不断演化而变得越来越复杂;客户程序与抽象类的实现部分之间存在着很大的依赖性;当需要构建一个层次结构的子系统时,使用Facade模式定义子系统中每层的入口点。享元(Flyweight)模式运用共享技术有效地支持大量细粒度的对象。适用于:一个应用程序使用了大量的对象;完全由于使用大量的对象,造成很大的存储开销;对象的大多数状态都可变为外部状态;如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象;应用程序不依赖于对象标识。装饰器(Decorator)模式描述了以透明围栏来支持修饰的类和对象的关系,动态地给一个对象添加一些额外的职责,从增加功能的角度来看,装饰器模式相比生成子类更加灵活。适用于:在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时。工厂方法(Factory Method)定义一个用于创建对象的接口,让子类决定将哪一个类实例化,使一个类的实例化延迟到其子类。适用于:当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且希望将哪一个帮助子类是代理者这一信息局部化的时候。观察者(Observer)模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。适用于:当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用;当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变时;当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即不希望这些对象是紧耦合的。中介者(Mediator)用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。适用于:一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解;一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象;想定制一个分布在多个类中的行为,而又不想生成太多的子类。如使一个后端数据模型能够被多个前端用户界面连接,采用此模式最合适。

  • 第5题:

    (请作答此空)设计模式能够动态地给一个对象添加一些额外的职责而无须修改此对象的结构;()设计模式定义一个用于创建对象的接口,让子类决定实例化哪一个类;欲使一个后端数据模型能够被多个前端用户界面连接,采用()模式最适合。

    A. 组合
    B. 外观
    C. 享元
    D. 装饰器

    答案:D
    解析:
    组合(Composite)模式将对象组合成树形结构以表示“部分一整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。适用于:想表示对象的部分—整体层次结构;希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。外观(Facade)模式为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。适用于:要为一个复杂子系统提供一个简单接口时,子系统往往因为不断演化而变得越来越复杂;客户程序与抽象类的实现部分之间存在着很大的依赖性;当需要构建一个层次结构的子系统时,使用Facade模式定义子系统中每层的入口点。享元(Flyweight)模式运用共享技术有效地支持大量细粒度的对象。适用于:一个应用程序使用了大量的对象;完全由于使用大量的对象,造成很大的存储开销;对象的大多数状态都可变为外部状态;如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象;应用程序不依赖于对象标识。装饰器(Decorator)模式描述了以透明围栏来支持修饰的类和对象的关系,动态地给一个对象添加一些额外的职责,从增加功能的角度来看,装饰器模式相比生成子类更加灵活。适用于:在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时。工厂方法(Factory Method)定义一个用于创建对象的接口,让子类决定将哪一个类实例化,使一个类的实例化延迟到其子类。适用于:当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且希望将哪一个帮助子类是代理者这一信息局部化的时候。观察者(Observer)模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。适用于:当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用;当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变时;当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即不希望这些对象是紧耦合的。中介者(Mediator)用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。适用于:一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解;一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象;想定制一个分布在多个类中的行为,而又不想生成太多的子类。如使一个后端数据模型能够被多个前端用户界面连接,采用此模式最合适。

  • 第6题:

    外观模式,当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能。


    正确答案:错误

  • 第7题:

    关于线程的创建过程,下面四种说法正确的有哪些?()

    • A、定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的start()方法
    • B、定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的run()方法
    • C、定义一个实现Runnable 接口的类并实现run()方法,创建该类实例对象,将其作为参数传递给Thread类的构造方法来创建Thread对象,调用Thread对象的start()方法
    • D、定义一个实现Runnable 接口的类并实现run()方法,创建该类对象,然后调用run()方法

    正确答案:A,C

  • 第8题:

    以下意图哪个是用来描述TEMPLATE METHOD(模板方法)?()

    • A、定义一个操作中的算法的骨架,而将一些步骤延迟到子类中
    • B、为其他对象提供一种代理以控制对这个对象的访问
    • C、将抽象部分与它的实现部分分离,使它们都可以独立地变化
    • D、使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系

    正确答案:A

  • 第9题:

    判断题
    外观模式,当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第10题:

    单选题
    以下意图哪个是用来描述FACADE(外观)?()
    A

    为子系统中的一组接口提供一个一致的界面,本模式定义了一个高层接口,这个接口使得这一子系统更加容易使用

    B

    定义一个用于创建对象的接口,让子类决定实例化哪一个类

    C

    保证一个类仅有一个实例,并提供一个访问它的全局访问点

    D

    在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态


    正确答案: C
    解析: 暂无解析

  • 第11题:

    单选题
    以下意图哪个是用来描述TEMPLATE METHOD(模板方法)?()
    A

    定义一个操作中的算法的骨架,而将一些步骤延迟到子类中

    B

    为其他对象提供一种代理以控制对这个对象的访问

    C

    将抽象部分与它的实现部分分离,使它们都可以独立地变化

    D

    使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系


    正确答案: A
    解析: 暂无解析

  • 第12题:

    单选题
    保证一个类仅有一个实例,并提供一个访问它的全局访问点。这句话是对()设计模式的描述。
    A

    外观模式

    B

    策略模式

    C

    适配器模式

    D

    单例模式


    正确答案: C
    解析: 暂无解析

  • 第13题:

    下列关于单例设计模式的描述中,正确的是()

    A、将一个类设计为单例设计模式,在其他类中可以创建这个类对象

    B、将一个类设计为单例设计模式,必须私有其空参数构造方法,并且还不能定义有参数的构造方法

    C、将一个类设计为单例设计模式,需要定义一个静态的成员方法将本类创建的对象返回给调

    D、以上答案都不对


    正确答案:B

  • 第14题:

    ● 下面给出了四种设计模式的作用:

    外观(Facade):为子系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用

    装饰(Decorate):当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能;

    单件(Singleton) :保证一个类仅有一个实例,并提供一个访问它的全局访问点;

    模板方法(Template Method):在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中现。请根据下面叙述的场景选用适当的设计模式。若某面向对象系统中的某些类有且只有一个实例,那么采用(42)设计模式能够有效达到该目的;该系统中的某子模块需要为其它模块提供访问不同数据库系统(Oracle、SQL Server、DB2 UDB 等)的功能,这些数据库系统提供的访问接口有一定的差异,但访问过程却都是相同的,例如,先连接数据库,再打开数据库,最后对数据进行查询,(43) 设计模式可抽象出相同的数据库访问过程;系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类

    (Component),分别显示文本和图片内容,现需要构造带有滚动条、或者带有黑色边框、或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,但希望最多只增加三个类,(44)设计模式可以实现该目的。

    (42)A. 外观 B. 装饰 C. 单件 D. 模板方法

    (43)A. 外观 B. 装饰 C. 单件 D. 模板方法

    (44)A. 外观 B. 装饰 C. 单件 D. 模板方法


    正确答案:C,D,B

  • 第15题:

    以下关于Singleton(单例)设计模式的叙述中,不正确的是( )。

    A.单例模式是创建型模式
    B.单例模式保证一个类仅有一个实例
    C.单例类提供一个访问唯一实例的全局访问点
    D.单例类提供一个创建一系列相关或相互依赖对象的接口

    答案:D
    解析:
    抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类,而非单例模式

  • 第16题:

    ( )设计模式能够动态地给一个对象添加一些额外的职责而无须修改此对象的结构;(请作答此空)设计模式定义一个用于创建对象的接口,让子类决定实例化哪一个类;欲使一个后端数据模型能够被多个前端用户界面连接,采用()模式最适合。

    A. 工厂方法
    B. 享元
    C. 观察者
    D. 中介者

    答案:A
    解析:
    组合(Composite)模式将对象组合成树形结构以表示“部分一整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。适用于:想表示对象的部分—整体层次结构;希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。外观(Facade)模式为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。适用于:要为一个复杂子系统提供一个简单接口时,子系统往往因为不断演化而变得越来越复杂;客户程序与抽象类的实现部分之间存在着很大的依赖性;当需要构建一个层次结构的子系统时,使用Facade模式定义子系统中每层的入口点。享元(Flyweight)模式运用共享技术有效地支持大量细粒度的对象。适用于:一个应用程序使用了大量的对象;完全由于使用大量的对象,造成很大的存储开销;对象的大多数状态都可变为外部状态;如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象;应用程序不依赖于对象标识。装饰器(Decorator)模式描述了以透明围栏来支持修饰的类和对象的关系,动态地给一个对象添加一些额外的职责,从增加功能的角度来看,装饰器模式相比生成子类更加灵活。适用于:在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时。工厂方法(Factory Method)定义一个用于创建对象的接口,让子类决定将哪一个类实例化,使一个类的实例化延迟到其子类。适用于:当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且希望将哪一个帮助子类是代理者这一信息局部化的时候。观察者(Observer)模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。适用于:当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用;当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变时;当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即不希望这些对象是紧耦合的。中介者(Mediator)用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。适用于:一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解;一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象;想定制一个分布在多个类中的行为,而又不想生成太多的子类。如使一个后端数据模型能够被多个前端用户界面连接,采用此模式最合适。

  • 第17题:

    ()模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,为子系统中的一组接口提供一个一致的界面,简化了一群类的接口。


    正确答案:外观

  • 第18题:

    当不适合采用生成子类的方法对已有的类进行扩充时,可以采用(1)设计模式动态地给一个对象添加一些额外的职责;当应用程序由于使用大量的对象,造成很大的存储开销时,可以采用(2)设计模式运用共享技术来有效地支持大量细粒度的对象;当想使用一个已经存在的类,但其接口不符合需求时,可以采用(3)设计模式将该类的接口转换成我们希望的接口。 空白(2)处应选择()

    • A、命令(CommanD)
    • B、适配器(Adapter)
    • C、装饰(DecoratE)
    • D、享元(Flyweight)

    正确答案:D

  • 第19题:

    以下意图哪个是用来描述BUILDER(生成器)?()

    • A、定义一个用于创建对象的接口,让子类决定实例化哪一个类
    • B、将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
    • C、保证一个类仅有一个实例,并提供一个访问它的全局访问点
    • D、运用共享技术有效地支持大量细粒度的对象

    正确答案:B

  • 第20题:

    以下意图哪个是用来描述FACTORY METHOD(工厂方法)?()

    • A、提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
    • B、表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作
    • C、定义一个用于创建对象的接口,让子类决定实例化哪一个类。该模式使一个类的实例化延迟到其子类
    • D、定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化

    正确答案:C

  • 第21题:

    填空题
    ()模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,为子系统中的一组接口提供一个一致的界面,简化了一群类的接口。

    正确答案: 外观
    解析: 暂无解析

  • 第22题:

    多选题
    关于线程的创建过程,下面四种说法正确的有哪些?()
    A

    定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的start()方法

    B

    定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的run()方法

    C

    定义一个实现Runnable 接口的类并实现run()方法,创建该类实例对象,将其作为参数传递给Thread类的构造方法来创建Thread对象,调用Thread对象的start()方法

    D

    定义一个实现Runnable 接口的类并实现run()方法,创建该类对象,然后调用run()方法


    正确答案: B,A
    解析: 暂无解析

  • 第23题:

    单选题
    以下意图哪个是用来描述SINGLETON(单件)?()
    A

    将一个类的接口转换成客户希望的另外一个接口该模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作

    B

    保证一个类仅有一个实例,并提供一个访问它的全局访问点

    C

    定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化

    D

    用一个中介对象来封装一系列的对象交互


    正确答案: C
    解析: 暂无解析