おとやすみ日記

ゲームプランナー、一児の父です。

AS3でデザインパターンその2「Adapter」

デザインパターンの勉強中です。メモ代わりにエントリーしときます。

    • -

インターフェースという概念を知ってから理解スピードが上がったと思う。

アダプターとはその名の通り、橋渡し的な存在のこと。

■ 具体的な使いどころから説明してみる。

日本語しか話せない太郎くんが、英語しか話せないジョンに「走れ」と命令したいとき、どうするか?

→通訳(Adapter)に任せる。

当然、通訳は太郎くんの「走れ」という命令を理解できる。

通訳が受理した「走れ」というメソッド(命令)の中に、ジョンに伝えられるメソッド「run」を呼び出す処理を入れれば、結果的に太郎くんが「走れ」といったらジョンは「run」することになる。

・継承(extends)して実装するやり方は、

通訳 extends ジョン をして、superでジョンのクラスの中身を継承する。すると「run」を呼び出せるようになるから、太郎くんの「走れ」の中で「run」の処理を実行させることができる。

・あるいは委譲(インスタンス化して呼び出す方法もある。

まずは通訳クラスの中でジョンををnewする。

例)var h:John = new John();

で、ここで作られたインスタンスhから、ジョンの持っていた「run」を実行させる。

h.run();

で、この上の処理を「走れ」メソッドの中に入れてしまえば、ジョンのクラスの中はいじることなく命令を橋渡しして実行することができるのです。