メインコンテンツまでスキップ

まとめ

パターン比較レビュー

パターン適用条件強み注意点よく使うシーン
Adapter既存のインターフェースが使えないとき呼び出し側は統一された API を使える変換が複雑になると Adapter が肥大化外部 API、ライブラリ置換、互換処理
Facade複雑な内部処理を隠したいときAPI の簡素化、複数呼び出しの統合機能をまとめる意図で構造が違うUI 向け窓口、サブシステム統合
Proxyアクセス制御やキャッシュを挟みたいとき処理の挿入が柔軟(遅延、ログ)本質的な変換はしないキャッシュ、認証、ログトレースなど

まとめと選び方の指針

  • 外部仕様や古い実装と無理やり繋いでいるなら → Adapter
  • 複雑な API 呼び出しを単純化したいなら → Facade
  • 認証やキャッシュなど「処理を挟みたい」場合 → Proxy

実際の設計会話での使い分けヒント

  • この API、古いやつだけど使わざるを得ないなら Adapter 挟みましょう
  • 新しいインターフェースで統一して、後で切り替えられるようにしておくと安心です
  • 呼び出し側で毎回 .printText() とかしてると危ないですね、変換レイヤーを抽象化しましょう