首页 > 代码库 > 设计模式之适配器模式(Adapter)

设计模式之适配器模式(Adapter)

1、定义

将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式又叫做变压器模式,也叫做包装模式(Wrapper),区别于装饰者模式。

2、通用类图

image

target目标角色:该角色定义把其他类转换为何种接口,也就是我们的期望接口。

Adaptee源角色:你想把谁转换成目标角色,这个“谁”就是原角色,它是已经存在的,运行良好的类或对象,经过适配器角色的包装,它会成为一个崭新、靓丽的角色。

Adapter适配器角色:适配器模式的核心角色,其他两个角色都是已经存在的角色,而适配器角色是需要新建的,他的职责非常简单,通过集成或是类关联的方式,把源角色转换为目标角色。

3、代码清单

package adapter;/** * 目标角色 * 2014-8-13下午2:13:53-limiracle */public interface Target {    //目标角色有自己的方法    public void request();}
package adapter;/** *目标角色的实现类 * 2014-8-13下午2:15:21-limiracle */public class ConcreteTarget implements Target{    public void request(){        System.out.println("===");    }}
package adapter;/** *源角色 * 2014-8-13下午2:16:04-limiracle */public class Adaptee {    //原有的业务逻辑    public void doSomething(){        System.out.println("********");    }}
package adapter;/** *适配器角色 * 2014-8-13下午2:17:23-limiracle */public class Adapter extends Adaptee implements Target{    //实现Target的接口,并在里面调用了源角色所要做的事情。    public void request(){        super.doSomething();    }}
package adapter;public class Main {    public static void main(String[] args){        //原有的业务逻辑        Target target=new ConcreteTarget();        target.request();        //现在增加了适配器角色后的业务逻辑        Target target2=new Adapter();        target2.request();    }}