Flex/AIRアプリでのルートエージェント
PACのコンポーネント指向の見方ではControlが中心的な役割を果たす。ルート(のエージェント)でも同じだ。しかしFlex/AIRアプリはApplicationまたはWindowedApplicationがルートクラスになる。そしてこれらはDisplayObjectだ。
PAC的にはDisplayObjectはView(本当のPACではPresentation)に含ませたい。
あくまで統一性の問題だが、Viewとロジック(ControlやModel(=Absolution))は切り分けたるためにも、他のエージェントと同じようにしたい。
その方法を2つ考えた。
- ViewがApplication/WindowedApplicationを継承し(Application/WindowedApplicationタグがルートになる)、Controlにロジックを埋め込む(ここまでは他のエージェントと同じ)。ただし、ControlのインスタンスはViewから生成する。
- ControlがApplication/WindowedApplicationを継承し、ViewはそのControlを継承する(Controlタグがルートになる(実質View=Controlとなる))。