Adapterパターン
https://ja.wikipedia.org/wiki/Adapter_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3
既存のクラスに修正を加えることなくインターフェースを変更するラッパー.
swiftで実装するには?
クラス図どおり実装するだけだが、Objective-CやSwiftには言語機能として既存のクラスを拡張できる機能があるので、Adapterクラスの実装は必要ない。
Apple Swift version 1.2 (swiftlang-602.0.53.1 clang-602.0.53) Target: x86_64-apple-darwin14.5.0
class Adaptee1 { func oldMethod1() { println("[\(__FUNCTION__)]") } } class Adaptee2 { func oldMethod2() { println("(\(__FUNCTION__))") } } protocol Target { func requiredMethod() } extension Adaptee1 : Target { func requiredMethod() { self.oldMethod1() } } extension Adaptee2 : Target { func requiredMethod() { self.oldMethod2() } } for t: Target in [Adaptee1(), Adaptee2()] { t.requiredMethod() }