日記なんか知らないけどアマゾンの広告フレームのタグが削除される。詳しい人心当たりあったら教えてくだちぃ。今回から数回は構造に関するパターンのカタログです。パターンを取り上げます。あるクラスのインターフェイスを別のインターフェイスに変換します。変換と言うとなんだか齟齬があるように感じますね。なんと言うか、所謂ラッパクラスです。オブジェクトが使われていた時。同じコードで使いたくなる事があったとします。インターフェイスに合わせて修正する必要が出てきます。ラッピングしてインターフェイスを合わせる事で、そのジレンマを解消します。クラスでラップして渡した事があります。パターンと呼ばれます。クラスからの継承が必要な場面ではこちらを選ぶべきでしょう。パターンと呼ばれます。再利用したいクラスが望んだインターフェイスを持たない場合や、既存の複数のサブクラスを利用したいが、さらにサブクラス化してインターフェイスを合わせる事が現実的ではない場合、等に活躍します。クラスが再利用されるクラスのサブクラスになる為、メンバ関数をオーバーライド出来ます。上手く行かないという事になります。違い、再利用されるクラスのメンバ関数をオーバーライドする事は出来ません。定義する事で実現できますが、余計な間接性を持たせる事にもなります。パターンと良く似た構造を持ちます。パターンと似ています。インターフェイスを変更せずに機能を追加します。方が透過性が高く、再帰的なオブジェクト構造の構築を可能としています。インターフェイスを変更しません。ジェネリックスプログラミングで威力を発揮すると思います。ジェネリックスプログラミングでは、ジェネリック関数の内部で特定のインターフェイスを必要とする事が多く、ジェネリック関数に放り込みたいクラスが必要なインターフェイスを持っていない事があります。