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

まとめ

パターン比較レビュー

パターン適用条件強み注意点よく使うシーン
Observer通知対象が変化する疎結合・拡張性が高い順序制御や依存確認がしにくいイベント、UI 更新、Webhook 通知
Mediator複数オブジェクトが関係する全体制御がしやすいMediator に責務が集中しがちUI コンポーネント間、複雑な業務連携
DIテストや差し替えが重要柔軟性・テスト性 ◎設定やライフサイクルの管理が必要サービス層、外部依存の注入、DI コンテナ構成

まとめと選び方の指針

  • 単純な通知の拡張性を高めたい → Observer
  • 複数サービスのやりとりを 1 箇所に集約したい → Mediator
  • 差し替えやテストのために疎結合にしたい → Dependency Injection (DI)

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

  • この OrderService、通知のたびにサービス呼び出してて重くなってる。Observer で分けませんか?
  • いろんなサービスが絡むから、Mediator にして中央から制御したほうが見通し良くなるかも
  • 今後このサービスをモックに差し替えてテストしたいし、DI にしといたほうが良さそうですね