java设计模式---适配器模式(Adapter pattern)

java设计模式—适配器模式(Adapter pattern)

前面已经详细的讲解了java23种设计模式中的创建型模式,接下来就讲解下结构型设计模式—适配器模式(Adapter pattern)
1. 定义
适配器模式把一个类的接口变换成客户端所期待的另一个接口,从而使原本因接口不兼容而无法一起工作的两个类能一起工作。适配器模式是结构型设计模式之一,其在不修改原来两个模块代码的情况下,将两个不兼容的类融合在一起,有点像粘合剂,通过转换使得他们能够协作起来, 符合了开闭原则。
2. UML图
适配器模式的UML类图如下:
java设计模式---适配器模式(Adapter pattern)_第1张图片
图所示是适配器模式的类图。Adapter 适配器设计模式中有 3 个重要角色:被适配者 Adaptee,适配器 Adapter 和目标对象 Target。其中两个现存的想要组合到一起的类分别是被适配者 Adaptee 和目标对象 Target 角色,按照类图所示,我们需要创建一个适配器 Adapter 将其组合在一起。
3. 适配器模式使用场景
适配器模式主要有以下几个使用场景:
(1)系统需要使用现有的类,而此类接口不符合系统的需要,即接口不兼容;
(2)想要建立一个可重复使用的类,用于关联彼此没有太大关联的一些类(包括即将引入的类);
(3)需要一个统一的输出接口,而输入端类型不确定,。
4. 简单的代码示例

//Target角色
public interface Target{
     
    public int getAge();
}

//Adaptee角色
public class Adaptee{
     
    public int getAge(){
        return 220;
    }
}
//Adapter角色
public class Adapter extends Agaptee implements Target{
     
    @Override
    public int getAge() {
        return 5;
    }
}
//Adapter 角色
public class Adapter implements Target{
     
    Adaptee adaptee;

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

    @Override public int getAge() {
        return 5;
    }

    public int getAdaptee(){
        return adaptee;
    }
}

你可能感兴趣的:(设计模式)