【デザインパターン】Adapterパターン|影響最低限に機能拡張する

既存のクラスを修正することなく、適切なインターフェースを使い機能拡張する方法
既存のクラスを変更しないで、機能拡張する方法として「Adapterパターン」があります。
既存のクラスに新しいものを入れるときに、インターフェースが異なりそのまま利用できないときに適用することで、機能拡張を既存の機能に影響を与えることなくすることが可能です。
他の規格を自分好みのインタフェース(規格)に変換する
オブジェクト自体の動作が望み通りであるものの、インタフェースが望み通りではない場合に、新たなインタフェースを生成する必要があるちおうこと
オブジェクト指向のこころ

Clientは既存のインタフェースを使用して、新しく機能拡張したい。
新規に利用したクラスは、既存のインタフェースをまとっていないため、そのままでは利用できない。
そこでAdapterパターンを利用する。
Adapterクラスを新規に作成して、既存のインタフェースを継承する。
新規に導入するクラスをコンポジションとして内部で保持する。
既存のインタフェース越しにその導入したクラスを使用する。
これでAdapterクラス以外は変更なく、新しいAdapteeクラスの機能を取り入れることが可能である。
クライアントも既存のインタフェース越しに使用するため、特別な知識も不要となりコードがシンプルになる。
不具合が発生したときにも、原因の切り分けが明確になる。
もくじ
Adapterパターン適用のメリット
- クライアントはAdapteeの中のサブシステムの詳細は知らなくても良い
- 既存のクラスを変更しないので、最低限のテストで良い(既存クラスは変更していなので再テスト不要)。
- Adapterクラスが影響を吸収する
デザインパターン勉強に使用したもの
デザインパターンでおすすめの書籍と動画講座を紹介します。
おすすめ書籍
「独学デザインパターンC++」
「Java言語で学ぶデザインパターン入門」
おすすめ動画講座
デザインパターン2:Adapter,Singleton,Observer
講師:ピーコックアンダーソン
この講座を受講することで簡単にAdapterパターン、Singletonパターン、Obsererパターンの適用方法や実践的な活用事例などを学ぶことができます。
講師の方の説明が丁寧で非常にわかりやすいです。
講座ではC#で説明しています。
講座内で作成しているコードもダウンロードできるようになっているので、すぐに自分で動作させながら確認もできます。
講座へここをクリック





