适配器模式(结构型)

 

设计模式的3个分类:创建型模式、结构型模式、行为型模式

适配器模式定义:

将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。

 

实际应用(经典插头举例)

 

 

类适配器和对象适配器的区别?

https://blog.csdn.net/qq_36982160/article/details/79965027

对象适配器(如下图): 

 

 

类适配器(如下图):

 

 

 

 

代码实现:

1.对象适配

//client测试
public class ClientOfObject {

    public static void main(String[] args) {

        ITarget target = new Adapter(new Adaptee("adaptee1"));
        target.request();
    }
}

//目标接口
public interface ITarget {

    void request();
}

//被适配类
public class Adaptee {

    private String name;

    public Adaptee(String name) {
        this.name = name;
    }

    public void specificRequest() {
        System.out.println("this is " + this.name + "\'s specific request.");
    }
}

//适配器
public class Adapter implements ITarget{

    private Adaptee adaptee;

    public Adapter(Adaptee adaptee) {
        this.adaptee = adaptee;
    }

    @Override
    public void request() {
        adaptee.specificRequest();
    }
}

  

2.类适配器

//client测试
public class ClientOfClass {

    public static void main(String[] args) {

        ITarget target = new Adapter("adaptee2");
        target.request();

    }
}

//适配器(和对象适配器的主要区别是适配器继承了待适配类)
public class Adapter extends Adaptee implements ITarget {

    public Adapter(String name) {
        super(name);
    }

    @Override
    public void request() {
        super.specificRequest();
    }
}

 

--End

 

posted @ 2020-11-17 15:27  黑冰台  阅读(175)  评论(0)    收藏  举报