设计模式适配器模式uml图
时间: 2025-01-02 19:22:09 浏览: 11
### 适配器模式的UML图
适配器模式旨在解决两个软件实体间的接口不匹配问题,通过创建一个新的适配器类来使这些实体能够协同工作。以下是适配器模式的两种形式——类适配器和对象适配器对应的UML图。
#### 类适配器模式的UML图
在类适配器模式中,适配器继承自目标接口并持有被适配者的实例[^1]:
```plaintext
+----------------+
| Client |
+----------------+
▲
│ uses
│
+----------------+ +---------------+
| Target |<---------| Adaptee |
+----------------+ +---------------+
| -request() | | -specificRequest()|
+----------------+ +---------------+
▲
│ implements/extends
│
+-------------------------------+
| ClassAdapter |
+-------------------------------+
| -adaptee : Adaptee |
| |
| override request(){...} |
+-----+
```
此图展示了`ClassAdapter`如何扩展`Target`接口的同时也包含了对`Adaptee`的操作逻辑,从而实现了接口转换的功能。
#### 对象适配器模式的UML图
对于对象适配器而言,则是让适配器持有一个已有的组件实例,并通过组合的方式完成相同的目标:
```plaintext
+--+
| Client |
+----------------+
▲
│ uses
│
+----------------+ +---------------+
| Target | | Adaptee |
+----------------+ +---------------+
| -request() | | -specificRequest()|
+--+ +---------------+
▲ ▲ has a
│ /
uses /
+-------------------------------+
| ObjectAdapter (contains) |
+-----+
| -adaptee : Adaptee |
| |
| request(){...} |
+-------------------------------+
```
在此设计下,`ObjectAdapter`并不直接继承于任何一方而是作为独立的对象存在,它内部维护了一个指向`Adaptee`类型的成员变量用于调用其方法,以此达到同样的效果。
阅读全文