设计模式-适配器模式怎么玩的?

一、适配器模式是什么?

适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。

二、适配器使用场景?

1、已经存在的类,它的方法和需求不匹配(方法结果相同或相似)的情况。 ​

2、适配器模式不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不 同厂家造成功能类似而接口不相同情况下的解决方案。有点亡羊补牢的感觉。

在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。根据适配器类与适配者类的关系不同,适配器模式可分为对象适配器和类适配器两种,在对象适配器模式中,适配器与适配者之间是关联关系;在类适配器模式中,适配器与适配者之间是继承(或实现)关系。

设计模式-适配器模式怎么玩的?

<code>ScoreOperation:目标抽象类定义客户所需接口,可以是一个抽象类或接口,也可以是具体类。
OperationAdapter: 适配器。 适配器可以调用另一个接口,作为一个转换器,对 适配者和目标抽象类 进行适配,适配器类是适配器模式的核心,在对象适配器中,它通过继承 目标抽象类 并关联一个 适配者 对象使二者产生联系。
BinarySearch、QuickSort(适配者类):适配者即被适配的角色,它定义了一个已经存在的接口,这个接口需要适配,适配者类一般是一个具体类,包含了客户希望使用的业务方法,在某些情况下可能没有适配者类的源代码。
适配器类中继承了目标抽象类, 又有适配者的引用(即上边说的对象适配模式的关联关系)。/<code>

三、适配器特性?

优点:

1、能提高类的透明性和复用,现有的类复用但不需要改变。

2、目标类和适配器类解耦,提高程序的扩展性。

3、在很多业务场景中符合开闭原则。

缺点:

1、适配器编写过程需要全面考虑,可能会增加系统的复杂性。

2、增加代码阅读难度,降低代码可读性,过多使用适配器会使系统代码变得凌乱。

四、补充

双向适配器是什么?

在对象适配器的使用过程中,如果在适配器中同时包含对目标类和适配者类的引用,适配者可以通过它调用目标类中的方法,目标类也可以通过它调用适配者类中的方法,那么该适配器就是一个双向适配器。

大家好,我是小劲,专注分享java知识点,如有总结不到位的,欢迎小伙伴指点。感谢大家阅读,欢迎点赞、转发...


分享到:


相關文章: