Java设计模式之适配器模式

来源:互联网 发布:数据存储系统厂家 编辑:程序博客网 时间:2024/05/23 00:11

适配器模式(adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。


需要适配的类:

public class Adaptee {//需要适配的类    public void specificRequest() {        System.out.println("特殊的请求!");    }}
适配器类,通过在内部包装一个Adaptee对象,把原接口转换成目标接口:

//适配器类,通过在内部包装一个Adaptee对象,把原接口转换成目标接口public class Adapter extends Target {    private Adaptee adaptee = new Adaptee();    @Override    public void request() {adaptee.specificRequest();    }}
客户所期待的接口:
public abstract class Target {//客户所期待的接口    public void request() {        System.out.println("普通请求!");    }}
适配器客户端:

public class AdapterClient {//适配器客户端    public static void main(String[] args) {Target target;target = new Adapter();target.request();    }}
运行结果:

特殊的请求!
适配器模式适用场景:

使用一个已经存在的类,但如果它的接口,也就是他的方法和你的要求不相同时,就应该考虑用适配器模式,两个类所做的事情相同或相似,但是具有不同的接口时要使用它,而且由于类都共享同一个接口,使得客户代码可以统一调用同一接口。首先不应该考虑用适配器,而是应该考虑通过重构统一接口。如果在双方都不太容易改变的时候再使用适配器模式适配。

原创粉丝点击