Flex/AIRアプリでのルートエージェント

PACのコンポーネント指向の見方ではControlが中心的な役割を果たす。ルート(のエージェント)でも同じだ。しかしFlex/AIRアプリはApplicationまたはWindowedApplicationがルートクラスになる。そしてこれらはDisplayObjectだ。


PAC的にはDisplayObjectはView(本当のPACではPresentation)に含ませたい。
あくまで統一性の問題だが、Viewとロジック(ControlやModel(=Absolution))は切り分けたるためにも、他のエージェントと同じようにしたい。


その方法を2つ考えた。

  1. ViewがApplication/WindowedApplicationを継承し(Application/WindowedApplicationタグがルートになる)、Controlにロジックを埋め込む(ここまでは他のエージェントと同じ)。ただし、ControlのインスタンスはViewから生成する。
  2. ControlがApplication/WindowedApplicationを継承し、ViewはそのControlを継承する(Controlタグがルートになる(実質View=Controlとなる))。