まとめ
パターン比較レビュー
パターン | 適用条件 | 強み | 注意点 | よく使うシーン |
---|---|---|---|---|
Facade | 複数の複雑な処理をまとめたい | 外部に対して簡単な窓口を提供 | まとめすぎると内部構造が隠れすぎる | サービス、ドメイン処理 |
Proxy | 処理の実行に制御・拡張を加えたい | 呼び出し形式を変えずに機能追加できる | 設計が重くなる場合も | 認可、キャッシュ、ロギング |
Iterator | 繰り返し処理が多く露出している | コレクション走査の抽象化、処理の一貫性 | 小規模ならやや冗長 | タスク一覧、ページ処理、構造走査 |
まとめと選び方の指針
- 一連の処理をまとめて外部に出したい →
Facade
- 外部アクセスに機能を追加したい →
Proxy
- 処理の中で繰り返しや走査が複雑 →
Iterator
特に Iterator
は Facade
や Proxy
と併用されることが多く、
「処理のまとめ+走査の統一」 という形で活用できる。
実際の設計会話での使い分けヒント
- この処理、認証からログまで全部露出してるので
Facade
にまとめたほうが使いやすいですね - 処理の呼び出しはそのまま使いたいけど、ログや認可を間に挟みたいなら
Proxy
が合いそうです - 呼び出しが多いものは一度窓口を定義して統一しましょう、将来変わっても安心です
- この中のリスト処理、for 文コピペせず
Iterator
にまとめましょう