【あだぷたーぱたーん】
Adapterパターン とは?
最終更新:
💡 変換プラグのように、形の違うインターフェースをつなぐ仕組み。
互換性のないインターフェースを変換し、既存クラスをそのまま再利用できるようにするデザインパターン。
📌 このページのポイント
Adapterパターンって、変換プラグみたいなもの?
そうだね。利用側が期待するインターフェースと、既存のクラスが提供するものが違うとき、間に変換役を置いてつなぐ仕組みだよ。
例えばどんな違いを吸収するの?
例えば利用側がsend(text)で呼びたいのに、外部ライブラリがwriteMessage(text)を提供している場合。AdapterのsendからwriteMessageを呼ぶ、といった形で合わせるんだ。
名前を変えるだけなの?
名前だけでなく、引数や戻り値の形を変換することもあるよ。ただし、意味が合わない処理まで名前を合わせるだけで互換になるわけではない。エラー時の動作なども確かめる必要があるね。
既存のコードを直接直したら?
変更できるなら、それが簡単な場合もあるよ。外部ライブラリなどを直接変えずに利用したいときは、Adapterに違いをまとめると利用側の各所へ変換処理を広げずに済むんだ。
Facadeとはどう違うの?
Adapterは期待されるインターフェースに合わせることが目的。Facadeは複数の機能などを使いやすい窓口へまとめることが目的だよ。どちらも包む形を取れても、解決したい問題が違うんだ。
まとめ:ざっくりこれだけ覚えればOK!
「Adapterパターン」って出てきたら「形の違うインターフェースを変換してつなぐ仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Adapter Pattern」 = 適合させるもの、のパターン
💬 変換プラグのように、接続する形の違いを吸収するイメージだよ。プログラムでは呼出しの形や引数・戻り値などを、利用側が期待する形に合わせる。