《设计模式解析》 第7章 Adapter模式 复习题

《设计模式解析》第7章Adapter模式复习题


1、定义:Adapter 是将一个类的接口转化为用户希望的另一个接口。

2、意图:使得原本由于接口不兼容而不能一起工作的类能够一起工作。

3、效果:使得原有对象能够适应新的类结构,不受其接口的限制。

4、继承,多态。

5、保持多态性。将一个Adapter实现某个接口或者继承某个基类,将方法实现委托给adaptee进行,以达到能够进行多态调用的目的。

6、不用担心原有的类由于接口不同,而无法被另一个类使用。

7、对象Adapter和类Adapter。

         对象Adapter使用委托,将请求转发给adaptee实现。

         类Adapter使用多重继承,定义接口的类使用公开继承,要适配的类使用私有继承。定义接口的类的方法使用adaptee的方法来实现。

《设计模式解析》 第7章 Adapter模式 复习题_第1张图片


1、一些情况下,你需要实现某些功能,而你发现某个类A刚好能够提供你所需的功能,但由于该类的接口(接口IA)定义与你所需的接口(接口IB)不同(实现了不同的接口),因此,无法进行多态调用。使用Adapter模式,你使得类A可以满足接口IB,这样,用户就能够直接使用他的接口IB了。

2、由于XXCircle类的接口不符合用户需求,因此,Circle类将XXCircle对象嵌套其中,Circle类像是服务提供者,但实际上仅是将请求转发给XXCircle对象进行实现。因此,Circle类只是一个外包装。

3、意图不同:Adapter是为了使不同接口的类能够协同工作而出现的。

         Façade模式是为了简化用户的接口而出现的。

设计原则不同:Adapter中,我们必须按照一个已经存在的接口进行设计。

         Façade模式中,我们可以“随心所欲”设计自己的接口。

因此,一个是简化了接口,另一个是转化了一个已有的接口。

4、冰箱的插头是3孔的,但只有2孔插座。因此,3孔到2孔插头的“转换器”就应运而生。能够使得3孔的插头使用2孔的插座。

 

1、根据需要实现的效果而定。

当你需要为客户提供一个简单易用的接口来提供服务时,使用Facade。

当你需要为客户提供一个他所想要的实现了某个接口的类(或继承了某个基类的类),并复用另一个类的功能时,使用Adapter。

2、An adapter oradaptor is a person that adaptsor a devicethat converts attributes of one device or system to those of an otherwiseincompatible device or system.

适配器:将一个不合适的设备、设备的属性或者系统转化为合适的部件的设备。

这个名字很合适,跟好与他所实现的“将不符合用户需求的类的接口转化为用户所需要的接口”想匹配。


你可能感兴趣的:(设计模式,工作,System,attributes)