描述:将一个类的接口变换为另一个,匹配两个不同类
优点:提高类的复用性
缺点:类适配器的适配者需要暴露方法,对象适配器替换时麻烦
应用:接口不规范的类进行转换,使用接口中的部分方法
类适配器
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 { |