1

簡単に言うと、PAC(Presentation‑Abstraction‑Control)デザインパターンは、ビューがパッシブビューであるMVP(Model‑View‑Presenter)パターンだけですか?

私が理解できる限り

  • MVPはプレゼンターであり、モデルと話します。次に、ビューがプレゼンターと話します。逆に、プレゼンターはビューと話します。つまり、次のようになります。

    View <--> Presenter --> Model
    

    ビュー[*]からの着信ユーザーイベント。

  • PACは、プレゼンテーションと抽象化の両方と通信するコントローラーですが、プレゼンテーションはコントローラーとは通信しません(ただし、コントローラーがインターセプトする可能性のあるイベントを送信します)。

    Presentation <-- Controller --> Abstraction
    

    プレゼンテーション(?)からの着信ユーザーイベント。

これにより、PACはMVPと同じであり、ビューがパッシブであることがわかります。これは、これら2つのパターンの正しい解釈ですか?

[*]:ユーザーイベントがコントローラーから発生するMVCとは異なります

PS Stackoverflowのデザインパターンについて一般的な質問をしても大丈夫ですか?それとももっと良い場所はありますか?それはプログラミングの問題というよりもデザインの問題なので、私には疑問があります。

4

1 に答える 1

2

違いは、アプリケーションの構造にあります。MVCおよびその他のMVCに着想を得たパターンには、単一のトライアドしかありませんが、PAC構造は階層的です。

Control取得するのは、アプリケーションをアセンブルするインスタンスのツリーです。

                              ここに画像の説明を入力してください

これらのトライアドのそれぞれで、コントロールは抽象化からデータを取得し、それをプレゼンテーションに配置します。

HMVCパターンもあります。これはPACパターンの解釈が少し異なり、コントロール(コントローラーに名前が変更されました)のみがプレゼンテーション(ビューに名前が変更されました)と抽象化(モデルレイヤー)の状態を操作することになっています。この場合、ビューはモデルレイヤーと直接通信し、必要なものを抽出します。

基本的に、PACは分散MVPであり、HMVCは分散Model2MVCです。

于 2012-09-14T16:30:40.927 に答える