2021-07-26适配器模式与桥接模式

2021-07-27  本文已影响0人  竹blue

适配器模式

定义

适配器模式(Adapter Pattern)又叫做变压器模式,它的功能是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而导致无法工作的类能够一起工作,属于结构型模式。

适用场景

通用写法

适配器一般包含三种角色:

类适配器原理:通过继承来实现适配器功能;具体做法:让Adapter实现Target接口,并且继承Adaptee,这样Adapter就具备Target和Adaptee的特性,就可以将两者进行转化了。

适配器模式.png 类适配器.png
对象适配器——解决类适配器最少知道原则(因为类适配器继承了原对象,所以知道他的所有的方法)

原理:通过组合来实现适配器功能;

具体做法:让Adapter 实现Target接口,然后内部持有Adaptee实例,然后在Target接口规定的方法内转化Adaptee。

对象适配器.png

注意:类适配器和对象适配器注重原对象方法的适配,如果对象中方法过多则建立使用接口适配器

接口适配器

原理:利用抽象类实现接口,并且空实现接口众多方法。

接口适配器.png
应用:多场景登录
适配器-多场景登录.png

适配器模式优、缺点

优点:

缺点:

源码体现

SpringAOP中的AdvisorAdapter类

class MethodBeforeAdviceAdapter implements AdvisorAdapter, Serializable {
 /**
 * 判断是否兼容的方法,可作为适配器模式的特征方法
 */
 @Override
 public boolean supportsAdvice(Advice advice) {
 return (advice instanceof MethodBeforeAdvice);
 }

 @Override
 public MethodInterceptor getInterceptor(Advisor advisor) {
 MethodBeforeAdvice advice = (MethodBeforeAdvice) advisor.getAdvice();
 return new MethodBeforeAdviceInterceptor(advice);
 }

}

桥接模式——替代多层继承,强调不同维度的之间的组合

定义

桥接模式(Bridge Pattern)是将抽象部分与它的具体实现部分分离,使它们都可以独立的变化,通过组合的方式建立两个类之间的联系,核心在于解耦抽象和实现,属于结构型模式

适用场景

通用写法

桥接模式.png

桥接模式主要包含4种角色:

//TODO AbstractCourse补充
源码分析——Driver
桥接模式-Driver.png

桥接模式的优缺点

优点:

缺点:

作业内容

  1. 1.完善第三方登录接口,完成不修改接口也能实现自动适配的功能。

  2. 2.说说你对桥接模式的理解。

上一篇下一篇

猜你喜欢

热点阅读