GRASPパターン[コントローラーパターン]
コントローラーパターン(Controller)
概要
UIレイヤーからシステム操作を最初に受け取り調整する(外部システムからの要求を受ける)オブジェクトは何かを決定するパターン
- 「保存」ボタンをクリックすると保存処理を行うクラスに処理を委譲する
- 「スペルチェック」ボタンをクリックするとスペルチェックするクラスに処理を委譲する
- 上記の責任を持つオブジェクトを「コントローラー(controller)」と呼ぶ
詳細
以下のどれかに該当するクラスをコントローラーとする(責任を与える)
メリット
気をつけること
- コントローラーの凝集性んが低くならないようにすること(低くなってきた場合は設計を見直すこと)
- システムに多数のイベントがあり、これらのすべてを1つのコントローラーで受け付けている
- コントローラー自体がシステムイベント遂行のための処理の多くを実行している(仕事を委譲していない)
- コントローラー自体に多くの属性があり、システム全体に関わる重要な情報を管理していたり、他の場所にある情報を複製している
- 上記の場合、以下のように設計を見直すこと
- コントローラーを追加し、分散する
- コントローラーから他のオブジェクトに責任を分散させる
- コントローラーに仕事させないようにする