1

私は最近PureMVCフレームワークを学びましたが、プロキシオブジェクトとメディエーターオブジェクト間の結合について少し混乱しています。このページのリンクは、フレームワークを説明するいくつかのドキュメントに接続しています。(前述のページのリンクはPDFを開いていることに注意してください。)

私が調べたPureMVCの図と例は、メディエーターとプロキシの間の直接結合を示していることがよくあります。プロキシの状態が更新されると、新しい通知を送信するのではなく、メディエーター(ファサードからプロキシへの参照を取得する)の状態が更新されます。

これは確かにコードのロジックを単純化するように見えますが、2つの一見異なるコンポーネントを直接結合することにもなります。私の理解では、メディエーターの目的は、ビューからのイベントをPureMVC通知に変換することです。プロキシは、データを収集してビューに中継するための何らかの機能を実行することを目的としています。これらの2つのコンポーネントは、アプリケーションの異なるレイヤーに存在するように見えます。おそらく、必ずしも一緒に結合する必要はありません。

プロキシオブジェクトが状態を更新したときに独自の通知を送信し、ファサードによって関心のあるメディエーターに転送されるようにする方が理にかなっていますか?

4

2 に答える 2

2

プロキシオブジェクトが状態を更新したときに独自の通知を送信し、ファサードによって関心のあるメディエーターに転送されるようにする方が理にかなっていますか?

はい、これはまさに起こる必要があることです。PureMVCは、ファサードによってリンクされた軽量のMVC構造を備えた単純なNotifier/Observerパターンの実装です。プロキシをメディエーターに結合しないことを強くお勧めします。メディエーターがデータの状態が変化したときにプロキシによって送信される通知に応答することのみを許可します。これにより、これらのクラスを完全に分離できます。

Flexを使用している場合は、PureMVCMultiCoreのFlex固有のポートであるHydraMVC / HydraFrameworkをお勧めします。ただし、PureMVCのAPIを模倣することはそれほど冗長ではなく、DelegateRegistryを介してサーバーの相互作用をプロキシから切り離す方法が含まれます。(完全な開示、私はこのプロジェクトの主要な開発者ですが、完全にOSSであり、自由に使用/貢献できます。)実装するMVCフレームワークに関係なく、通知を介してプロキシ/メディエーターを完全に分離することを強くお勧めします。

于 2009-08-17T11:51:43.350 に答える
2

通知を介してメディエーターを更新した場合でも、プロキシに結合されますが、それは問題ありません。

プロキシを結合しない限り、大丈夫だと思います。

ファン

于 2009-08-14T21:47:14.473 に答える