app2641/DesignPatternOnPHP — pull request #6 by app2641 (2014-09-22 05:48:08+00:00)
Title: Adapterパターンの実装 #5

Adapterパターンを実装した。
Adapterは異なるAPIとインターフェイスを持つクラス間の橋渡しとなるクラス。APIをラッパーしてインターフェイスと互換性を持ったクラスがAdapterということになる。
実際にクライアント側が操作するのはAdapterクラスなため、機能を備えたクラスはカプセル化されていることになる。

ラップさせるには継承(Inheritance)と委譲(Delegate)とで実装するパターンがある。
継承はその名の通り機能を実装したAPIをextendしてラップする。
委譲はAdapterクラス内に実装クラスを保持してメソッドの動作を実装クラスに一任する。

主観として委譲はAdapterのインスタンスを生成したときに実装クラスを内部でインスタンス化させなければならず少し気持ちが悪い。
継承パターンのほうが使いやすそうに感じる。