パターン比較レビュー
パターン | 適用条件 | 強み | 注意点 | よく使うシーン |
---|
Factory Method | 実装クラスを動的に選びたい | 拡張性 ◎ | サブクラスを作る設計が必要 | シンプルな生成処理の柔軟化 |
Abstract Factory | 関連オブジェクト群を一括生成 | 一括切替可能 | パターン構造がやや複雑 | UI/環境設定、モジュール群切替 |
Builder | 複雑な初期化手順を構築 | 柔軟で見通し良い生成 | 単純な構造には過剰 | 多段階構築が必要な場面 |
Singleton | インスタンスを 1 つに固定 | 状態共有 ◎、再利用性高い | テストや依存注入に注意 | Logger, 設定、キャッシュなど |
まとめと選び方の指針
new
が頻出している時点で構造を見直すサイン
- 生成処理の集中管理でテスト・拡張・保守が容易になる
- オブジェクトの複雑さや、生成対象の関係性に応じてパターンを選ぶことが重要
実際の設計会話での使い分けヒント
- この
new
、あちこちに書かれててテストもしにくいし、Factory
で管理しましょう
- Logger とか共通ユーティリティなら
Singleton
にして共有した方が良さそう
- このオブジェクト、プロパティの組み合わせが複雑だから
Builder
で構築したいですね
- 環境ごとに依存を切り替えるなら
Abstract Factory
がいいかも