システムのイベントを処理する責任をどのクラスが持つかを決めるための一般的原則が「コントローラー」パターンです。
コントローラーは、以下のどれかを表すクラスとし、システムイベントのメッセージを受け取ったり処理したりする責任を割り当てます。
- システム全体、デバイス、またはサブシステムを表すクラス(Facadeのコントローラ)
- システムのイベントが起きるユースケースシナリオを表すクラス
- 同じユースケースシナリオで起きるシステムイベントにはすべて、同じコントローラークラスを使用する。
コントローラはなすべき仕事を他のオブジェクトに委譲し、コントローラ自体はアクティビティの調整と制御のみを行う。