Adapter を Go で
Adapter は、 構造に関するデザインパターンの一つで、 非互換なオブジェクト同士の協働を可能とします。
アダプターは二つのオブジェクト間のラッパーとして機能します。 一方のオブジェクトへの呼び出しを捕まえ、 二つ目のオブジェクトが認識可能なデータ形式とインターフェースに変換します。
概念的な例
オブジェクトの何らかの機能 (ライトニング・ポート) の存在を期待するクライアント・コードがあります。 しかし、 ここで adaptee と呼ばれるオブジェクト (Windows ラップトップ) は、 同じ機能を異なるインターフェース (USB ポート) を通して提供します。
ここで Adapter パターンが登場します。 以下を行う adapter という struct 型を作成します:
-
クライアントが期待しているのと同じインターフェース (ライトニング・ポート) に従う。
-
クライアントからのリクエストを adaptee が期待する形式に翻訳する。 adapter は、 ライトニング・コネクターを受け入れ、 その信号を USB 形式に変換し、 Windows ラップトップの USB ポートに渡す。