描述:将一个类的接口变换为另一个,匹配两个不同类
优点:提高类的复用性
缺点:类适配器的适配者需要暴露方法,对象适配器替换时麻烦
应用:接口不规范的类进行转换,使用接口中的部分方法
类适配器
classDiagram class Target{ <> request() void } class Adaptee{ constructor() +specificRequest() void } class Adapter{ constructor() +request() void } Target <|.. Adapter:实现 Adaptee <|-- Adapter:继承
- 目标对象接口
- 被适配者类
- 适配器,用来继承类、实现接口
- 实例调用的是被适配者类的逻辑
1 | // 目标对象 |
对象适配器
classDiagram class Target{ <> request() void } class Adaptee{ constructor() +specificRequest() void } class Adapter{ -adaptee: Adaptee constructor(adaptee : Adaptee) +request() void } Target <|.. Adapter:实现 Adaptee --o Adapter:聚合
- 目标对象接口
- 被适配者类
- 适配器,用来实现接口,被适配者类私有化
- 通过适配器传入实例的方式进行实例化,并调用相关方法
1 | // 目标对象 |
接口适配器
classDiagram class Adaptee{ <> operation1() void operation2() void } class AbsAdapter{ +operation1() void +operation2() void } class UseClass{ operation1() void } Adaptee <|.. AbsAdapter :实现 AbsAdapter <.. UseClass :依赖
- 目标对象接口
- 被适配者类,实现目标对象接口
- 新的类,重写适配者类的函数内容
1 | interface Adaptee { |