java适配器模式 1、概述
什么是适配器模式?
适配器模式是一种结构型设计模式。适配器模式就是:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
用电器来打个比喻:有一个电器的插头是三脚的,而现有的插座是两孔的,要使插头插上插座,我们需要一个插头转换器,这个转换器即是适配器。
适配器模式涉及3个角色:
源(Adaptee):需要被适配的对象或类型,相当于插头。
适配器(Adapter):连接目标和源的中间对象,相当于插头转换器。
目标(Target):期待得到的目标,相当于插座。
2、适配器模式UML图图片来自网络
通过上面UML图可以知道,客户端期待的接口或者对象通过适配器的转换得到了满足,Adapter通过内部包装Adaptee对象把源对象转换成客户端期待的对象。
3、适配器模式分类适配器模式包括3种形式:
类适配器模式:类适配器使用的是继承的方式,一般来说无法对其子类进行适配
对象适配器模式:对象适配器使用的是组合的方式,子孙类都可以被适配。另外,对象适配器对于增加一些新行为非常方便,而且新增加的行为同时适用于所有的源。
接口适配器模式(又称缺省适配器模式):接口适配器模式(缺省适配模式)基本思想是,为一个接口提供缺省实现,这样子类可以从这个缺省实现进行扩展,而不必从原有接口进行扩展。
可以说对象适配器模式是另外6种结构型设计模式的起源(图片源自网络)。
4、三种适配器模式详解
适配器模式的三种实现方式及代码实例详解,用电器来打个比喻:有一个电器的插头是两脚的,而现有的插座是三孔的,要使插头插上插座,我们需要一个插头转换器,这个转换器即是适配器。
图片源自网络
4.1、类适配器模式类适配器使用的是继承的方式,一般来说无法对其子类进行适配,请看代码实例
1.首先我们有一个要被适配的类
/** * 源(相当于两脚插头,也就是被适配的类) * @author ningbeibei */ public class Adaptee { public void adapteeMethod() { System.out.println("两脚插头,被适配的类...."); } }