P/A/Cの役割revised

こうして実装面も考えると、各部分の役割は以下のようになるかと考えた。

Presentation

  • UI
  • ユーザー入力を内部イベントの送出によってControlに知らせる
    • イベントによるため、Controlへの依存はない

Control

  • 他エージェントと連携するのに必要な機能を司る、つまり、
    • 外部から参照する自エージェントの状態保持(byクラス変数)
    • 内部のイベントを拾った時に自エージェントの状態を判断する(byプライベートメソッドのイベントハンドラ
    • 外部へのイベント送出
  • 自エージェント内のコントロール
    • Presentaion, Abstractionのインスタンス生成
    • 内部イベントや外部からのリクエストに応じてAbstractionにデータ処理をさせたりPresentationの見た目変更をさせたりする。

Abstraction

  • エージェント内の機能のロジックとデータを司る
  • 内部処理のイベント(処理の終了ぐらいしか思い当たらない)をイベントによってControlに知らせる
    • Presentationと同じくContolへの依存はない


次はもっと実装レベルについて。