( )使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

admin2019-06-12  43

问题 (    )使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

选项 A、Adapter(适配器)
B、Iterator(迭代器)
C、Prototype(原型)
D、Observer(观察者)

答案A

解析 本题主要考查各设计模式的基本概念和作用。
(1)Adapter(适配器)设计模式的意图是将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
    适用性:想使用一个已经存在的类,而它的接口不符合需求。
    想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。(仅适用于对象Adapter)想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
    (2)Prototype(原型)设计模式的意图是用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。
    适用性:当要实例化的类是在运行时刻指定时。例如,通过动态装载;或为了避免创建一个与产品类层次平行的工厂类层次时;或当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。
    (3)Iterator(迭代器)设计模式的意图是提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。
    适用性:访问一个聚合对象的内容而无须暴露它的内部表示。迭代器模式支持对聚合对象的多种遍历。也为遍历不同的聚合结构提供一个统一的接口(即支持多态迭代)。
    (4)Observer(观察者)设计模式,定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
    适用性:当一个抽象模型有两个方面,其中一个方面依赖于另一方面。将这两者封装在独立的对象中以使它们可以各自独立地改变和复用。以下两种情况比较适合观察者模式:一个是当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变;另一个是当一个对象必须通知其他对象,而它又不能假定其他对象是谁。换言之,你不希望这些对象是紧密耦合的。
转载请注明原文地址:https://jikaoti.com/ti/4TG7FFFM
0

最新回复(0)