アダプタクラス
アダプタクラスとは、複数のクラス間の接続が困難である場合に、両者の仲立ちとなり、関連付けを行う役割を担うクラスのことである。
オブジェクト指向開発で役に立つ、汎用的な設計パターンとして知られるGoFデザインパターンの1つに「Adapter」パターンがある。アダプタクラスは、このパターンで利用されるクラスである。
アプリケーションを構成するのに必要な2つのクラスを実場面に適用する場合、実際には両クラスの仕様ギャップが大きく、そのままでは関連付けができないケースがある。例えば、メソッド呼び出しの形式が異なる、必要な情報項目の過不足がある、などの場合である。アダプタクラスを両者の間に介在させることで、これらギャップを埋めることが、アダプタクラスの役割である。
アダプタクラスの実現方法の1つは、利用したいクラスを継承するクラスをアダプタクラスとして作成するものである。ここでもう一方のターゲットクラスに必要となるインターフェースを実装し、もう一方のターゲットクラスは、アダプタクラスのサブクラスとして作成される。
もう1つの実現方法は、ターゲットクラスを継承したサブクラスの中で利用したいクラスのインスタンスを生成し、ターゲットの処理の一部をこのインスタンスに委譲するというものである。
なおアダプタクラスの実例として、Apache JakartaのCommons Loggingというロギング処理への適用例がある。実処理側では種々のロギングエンジンにより、環境ごとの利用方法がさまざまである。Loggingクラスを導入することにより、アプリケーション側から見ると末端の違いがラップされ、統一的なアクセス方法に見える形となっている。
- アダプタクラスのページへのリンク