java 24种设计模式之五适配器模式

模式的结构与实现

1. 模式的结构

适配器模式(Adapter)包含以下主要角色。

  1. 目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。
  2. 适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。
  3. 适配器(Adapter)类:它是一个转换器,通过继承或引用适配者的对象,把适配者接口转换成目标接口,让客户按目标接口的格式访问适配者。


类适配器模式的结构图如图 1 所示。

java 24种设计模式之五适配器模式_第1张图片

对象适配器模式的结构图如图 2 所示。

java 24种设计模式之五适配器模式_第2张图片

2. 类适配器模式实现

1.目标接口

package java设计模式.适配器模式.类适配器;

public interface Target {

    public void request();
}

2.适配者编写

package java设计模式.适配器模式.对象适配器;

public class Adaptee {

    public void specificRequest(){
        System.out.println("对象适配者被调用");
    }
}

3.适配器编写

package java设计模式.适配器模式.对象适配器;

public class Adaptee {

    public void specificRequest(){
        System.out.println("对象适配者被调用");
    }
}

4.测试类client

package java设计模式.适配器模式.类适配器;

public class Client {

    public static void main(String[] args) {
        Target target = new ClassAdapter();
        target.request();
    }
}

3. 对象适配器模式实现

1.目标接口

package java设计模式.适配器模式.对象适配器;

public interface Target {

    public void request();
}

2.适配者

package java设计模式.适配器模式.对象适配器;

public class Adaptee {

    public void specificRequest(){
        System.out.println("对象适配者被调用");
    }
}

3.适配器

package java设计模式.适配器模式.对象适配器;

public class ObjectAdapter implements Target{

    private Adaptee adaptee;

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

    @Override
    public void request() {
        System.out.println("对象适配器被调用");
        adaptee.specificRequest();
    }
}

4.测试类client

package java设计模式.适配器模式.对象适配器;

public class Clinet {

    public static void main(String[] args) {
        Adaptee adaptee = new Adaptee();
        Target target = new ObjectAdapter(adaptee);
        target.request();
    }
}

 

你可能感兴趣的:(java)