适配器模式(Adapter)将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.
① Target(目标接口):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口.
② Adaptee:需要适配的类或适配者类.
③ Adapter(适配器):通过包装一个需要适配的对象,把原接口转换成目标接口.
核心代码:
<pre><code>`// 适配器模式
class AdapterTarget {
func request() {
}
}
class Adapter:AdapterTarget {
lazy var adaptee:Adaptee = Adaptee()
override func request() {
adaptee.specificRequest()
}
}
class Adaptee {
func specificRequest() {
print("FlyElephant--电脑接口")
}
}`</code></pre>
核心代码实现比较简单,优点:
① 通过适配器,客户端可以调用同一接口,因而对客户端来说是透明的.这样做更简单、更直接、更紧凑.
② 将目标类和适配者类解耦,通过引入一个适配器类重用现有的适配者类,而无需修改原有代码.
③ 复用了已经存在的类,解决了现存类和复用环境要求不一致的问题.
现实中的例子最典型的是电源适配器.