
272
7
章
デザインツールボックス
デザインツールボックス
のためのツール
ツールボックスがだいぶ重くなってきました!
この
7
章では、インタフェースを変更し、クライアントとクラ
イアントが使うシステムとの間の結合を減らせるような
2
つのパターンが追加されました。
■
既存のクラスを使う必要があり、
そのインタフェースが必要として
いるインタフェースとは異なる場
合は、アダプタを使う。
■
大規模なインタフェースや複雑な
インタフェース群を単純化し統合
する必要がある場合は、ファサー
ドを使う。
■
アダプタは、あるインタフェース
をクライアントが要求するインタ
フェースに変換する。
■
ファサードは、クライアントを複
雑なサブシステムから分離する。
■
アダプタの実装には、ターゲット
インタフェースの大きさや複雑さ
により、ほとんど作業が必要ない
場合もあれば、多くの作業が必要
な場合もある。
■
ファサードを実装するには、(コン
ポジションを使って)ファサード
をそのサブシステムで構成し、委
譲を使ってファサードの仕事を実
行する必要がある。
■
Adapter
パターンには、オブジェ
クトアダプタとクラスアダプタと
いう
2
つの種類がある。クラスア
ダプタには多重継承が必要である。
■
1
つのサブシステムに対して複数
のファサードを実装できる。
■
アダプタは、オブジェクトのイン
タフェースを変更するためにオブ
ジェクトをラップする。デコレー
タは、新しい振る舞いや責務を追
加するためにオブジェクトをラッ
プする。ファサードは、単純化の
ためにオブ