Adapter

今日はAdapterです。ACアダプタとかのadapterです。adaptです。適合させるものです。別名Wrapperです。ラッパーか、なんだ。異なるインターフェースの「ずれ」を埋めるのが目的。既存の実装(クラスとか)を流用して新しいインターフェースを作ったりとかする。
Perlで実装しました。
http://svn.takatoshi.dyndns.org/public/pattern/trunk/adapter/

    • -

継承を使う方法と委譲を使う方法の2種類があるようです。
継承を使う場合、Target(適合させるインターフェース)を実装(implement)してAdaptee(適合される側)を継承するんだけど、PerlにはJavaみたいにinterfaceってものがないし、単一継承の制限もないのでちょっと違う感じになってしまいました。これでいいのかな?まあいいか。
今回も前回に引き続き「動いたときの感動」を味わいました。おもしろい。
個人的にラッパーにはけっこう馴染み深いので、今回はこれで十分かな。

    • -

あー、あと。
Javaだとメソッド名は小文字で始めてshowWithAsterみたいに書く。Iteratorのときはそれを尊重して同じようにしてたんだけど、キーボード打つのが苦手だからか、大文字にするのがなんかめんどくさい。今回はPerl流にshow_with_asterみたいにしてみました。