理系学生日記

おまえはいつまで学生気分なのか

PoEAA: Application Controller

Application Controller には 2 つの役割があります。

  1. どのドメインロジックを実行するのかを決める
  2. どの View を使ってレスポンスを作成するのかを決める

この目的を果たすため、Application Controller は、ドメインロジックの集合と View の集合を持つ必要があります。

プレゼンテーション層との分離は Application Controller の設計上の要点ですが、著者はこの点について、

my preference is for the Application Controller to have no links to the UI machinery.

と述べていて、その理由は testability と拡張性です。 Testability については、プレゼンテーション層との分離に従い単体でテストが実施できるということを意味していますし、拡張性についても、プレゼンテーションと分離するが故にプレゼンテーションが差し変わったとしても対応できるということになります。