java经典设计模式之适配器模式

1、引言

        模拟一个场景,比如因为工作原因需要出差,所住宾馆所有插孔都是两项插孔,而你的手机充电器是三项插头,这时宾馆提供一个插排可以使用两项插孔,同时又可以三项插孔。这个插排就是适配器。 适配器模式就是将一个类的接口转换成客户需要的另一个接口,使得原本由于不兼容而不能在一起工作的那些类可以在一起工作。

1.1、角色:

        1、目标接口(target):客户机所期待的接口,目标可以是具体的或抽象的类或接口。

        2、需要适配的类:需要适配的类或者适配者类

        3、适配器:通过包装一个需要适配的对象,把接口转换成目标接口

1.2、种类

        1、类适配器模式

        2、对象适配器模式 

1.3、特征

        1、适配器对象实现原有的接口。

        2、适配器对象组合实现一个实现新接口的对象(可以不实现一个接口,只是一个单纯的对象)。

        3、对适配器原有接口方法的调用委托给新接口的实例的特定方法。

2、学习

2.1、类适配器 

java经典设计模式之适配器模式_第1张图片
java经典设计模式之适配器模式_第2张图片
需要适配的类
java经典设计模式之适配器模式_第3张图片
目标接口
java经典设计模式之适配器模式_第4张图片
目标接口具体实现类
java经典设计模式之适配器模式_第5张图片
适配器
java经典设计模式之适配器模式_第6张图片

2.2、对象适配器 

        1、对象适配器不使用继承的方式,直接关联。

        2、一个对象可以把多个不同的适配器适配到同一个目标。

        3、可以适配一个适配者的子类,由于适配器和适配者之间时关联关系,根据“里氏代换原则”,适配者的子类也可以通过改适配器进行适配。

        4、与类适配模式相比,要做适配器中置换适配者类的某些方法比较麻烦。如果一定要置换适配者类的一个或多个方法,可以先做一个适配者类的总类,将适配者类的方法置换掉,然后再把适配者类的子类当作真正的适配者进行适配,较为麻烦。

java经典设计模式之适配器模式_第7张图片
不要继承、直接引入


java经典设计模式之适配器模式_第8张图片

你可能感兴趣的:(java经典设计模式之适配器模式)