Pure MVC Framework

Pure MVC Framework

PureMVC

MVCともあるとおり、PureMVCは設計方法のMVCモデルを基本としています。

  1. スタートアップファイル
    PureMVC、というよりはすべての基本となるMXMLまたは、
    Spriteクラスを継承したActionScriptファイルが必要になります。
    一番最初にインスタンス化されるクラスと言い換えてもいいでしょう。
  2. .Controller群
    PureMVCの中ではControllerにあたるものは
    Facadeクラス、Commandクラスになります。
    ・Façadeクラス
    イベントが起きた際にどのCommand(あるいはProxy)を呼び出すかを関連付けさせるためのクラスです。
    CairngormではFrontContrllerと呼ばれていました。
    このクラスは静的に管理されるため1アプリケーションにつき(1SWFにつき?)必ずひとつです。
    ・ Commandクラス
    Facadeクラスで関連付けされたイベントに対するハンドルクラスがCommandクラスの役割です。
    このあたり、Cairngormと変化はありませんね。
    但し、CairngormではCommandクラスがイベントごと(クリックは1イベントなのでボタンのクリックごとにイベントがあった)に
    作成されるわけではなく、このCommandクラスはアプリケーションとして振舞わなければならない処理を記述したものになります。
    また、このクラスの中で下記、ViewのMXMLコンポーネントとそのMXMLが発生させるイベントとの関連付けをFacadeクラスに登録と、
    このアプリケーション内で使用するModel群のクラスであるProxyクラスをFacadeクラスに登録しています。
  3. Model群
    ・ Proxyクラス
      実際にビジネスロジックが書かれたクラスです。
    ・ ValueObject(VO)クラス
    データオブジェクトクラスです。
    Model群に該当するかどうかはともかく、前述のView群のMediatorクラスとProxyクラスとのデータのやりとりを
    ValueObjectクラスを用いて行っているため、このModel群に該当するだろうということでここにいます。
    但し、このValueObjectを用いてMXMLファイルのデータ表現(データバインディング)を行っていますので、
    Model群とView群にまたがっているといえるかもしれません。
  4. View群
    PureMVCの中ではViewにあたるものは
    ViewコンポーネントであるMXMLとMediatorクラスになります。
    ・ MXMLファイル
    これについてはもはや説明は不要ですね。
    Flexの画面表現をするためのファイルです。
    またこのMXMLの中に、その画面表現の中でのイベントを<Metadata>タグを用いて、表現します。
    このあたりのサンプルソースは後述します。
    ・ Mediatorクラス
    MXMLにバインドさせるデータを管理するクラスです。
    また、MXMLの<Metadata>タグにて記述されたイベントを最初にハンドルするのはこの
    Mediatorクラスです。
    イベントをハンドルした(受け取った)このクラスは以下のModel群に所属するProxyクラスのメソッドを呼び出しています。