1. 意图
将一个类的接口转换成客户希望的另外一个接口. 解决接口不兼容问题.
2. 别名
包装器 Wrapper
4. 适用性
想使用一个已经存在的类. 而它的接口不符合你的要求.
5. 结构
6. 参与者
Target
----客户需要的接口.
Adaptee
----已经存在的一个接口.这个接口需要适配.
Adapter
----对Adaptee和Target接口进行适配.
在这里加入我们有一个接口:
比如:
线程的入口函数会运行IRunnable::run()方法。
在这里,我们要被线程运行就必须要从IRunnable这个接口继承下来,可是,现在我有一个类它本来是没有被设计为为多线程的,所以,我没有从IRunnable继承下来。可是现在,我需要它支持多线程,而且我已经不能让它从IRunnable继承下来了,或者是我不想修改它,这又如何是好呢?
这时候,我们就需要一个适配器了!
上面便是IRunnable的适配器。
现在好了,我们可以让不是从Runnable继承下来的类支持多线程了: