Adapter は、 構造に関するデザインパターンの一つで、 非互換なオブジェクト同士の協働を可能とします。
アダプターは二つのオブジェクト間のラッパーとして機能します。 一方のオブジェクトへの呼び出しを捕まえ、 二つ目のオブジェクトが認識可能なデータ形式とインターフェースに変換します。
複雑度:
人気度:
使用例: Adapter パターンは Java コードではよく見かけます。 旧来のコードに基づいたシステムでよく使用されます。 そのような場合、 アダプターは旧来のコードを現代のクラスから使用可能にします。
Java コア・ライブラリーには、 いくつかの標準アダプターがあります:
見つけ方: アダプターは、 異なる抽象クラスまたはインターフェース型のインスタンスを取るコンストラクターの存在により認識できます。 アダプターは、 いずれかのメソッドへの呼び出しを受け取ると、 パラメーターを適切な形式に変換し、 ラップされたオブジェクトの一つまたは複数のメソッドを呼び出します。
四角いくいを丸い穴に合わせる
この簡単な例では、 アダプターが互換性のないオブジェクト同士を動作させる方法を示します。
round
round/RoundHole.java: 丸い穴
round/RoundPeg.java: 丸いくい
square
square/SquarePeg.java: 正方形のくい
adapters
adapters/SquarePegAdapter.java: 正方形のくいの丸い穴へのアダプター
Demo.java: クライアント・コード
OutputDemo.txt: 実行結果
他言語での Adapter