跳到内容
Caiden's Blog
返回

适配器模式(Adapter)

啥是适配器模式,可以类比为一个东西,就是电源适配器,电源适配器是把220v转换为电脑可以使用的20v,本质上还是用的220v的电,只不过是通过这个电源适配器转换了一下。

介绍

啥是适配器模式,可以类比为一个东西,就是电源适配器,电源适配器是把220v转换为电脑可以使用的20v,本质上还是用的220v的电,只不过是通过这个电源适配器转换了一下,适配器模式同理,有一个类有我想要的功能,但是我现在不能直接使用,也不能修改,因为他是220v(国家提供的),所以我得搭配一个适配器转换成我可以使用的类,这就是适配器模式。

适配器模式有类适配器和对象适配器,类适配器是通过适配器继承目标类来实现复用已有功能,对象适配器是通过适配器类中new一个目标类对象,来实现复用已有功能。

类适配器

image-20211027223849247

  1. client

客户端类,可以理解为电脑,就是使用者

  1. Target

目标,我客户端直接使用的接口

  1. adaptee

类比为220v电压,也就是系统中原有的类,我想用里面的功能

  1. adapter

适配器,实现target接口,里面方法怎么办呢?总不能手写具体逻辑吧,所以直接继承adaptee,完成功能复用+转换

总的来说就是适配器,实现客户端使用的接口,具体接口方法处理通过继承原有类来做处理

image-20211027223922971

对象适配器

image-20211027223949877

与类适配器不同的是,对象适配器是通过在适配器中new一个adaptee,然后通过对象调用方法,Target也从接口变为了抽象类,适配器继承此抽象类,实现方法,用new的adaptee对象的方法处理具体逻辑。

image-20211027224105796

应用场景

image-20211027224044356

具体使用

public static void main(String[] args) {
    // 对于main类而言,
    Print print = new PrintBanner("hello!");
    print.printWeak();
    print.printStrong();
}

结果:

(hello!)
*hello!*

分享到:

上一篇
NIO介绍及API使用
下一篇
TCP/IP五层模型简单介绍