3

Robotlegs/PureMVC から来て、私はビュー メディエーターの概念にかなり精通しています。つまり、「ダミー」ビューからのイベント/リクエストをほとんどリッスンし、さらにリクエストを行い、アプリケーション全体のシグナル/イベントを送信するコンポーネントです。 、ビューからの要求に基づいてコマンドなどを実行します。

Flex 4 で導入されたホスト コンポーネントの概念は、メディエーターと同じと見なすことができますか? 少し気になるのは、ホスト コンポーネントが引き続きビューと見なされることです。これは、ホスト コンポーネントが SkinnableComponent またはそれをさらに継承するクラスを拡張するためです。私の見解では、メディエータはビュー ロジックから完全に除外されるべきです。

それにもかかわらず、スキン、ホスト コンポーネント、およびそのホスト コンポーネントのビュー メディエーターを作成したくありません。

ホスト コンポーネントをメディエーターとして使用し、そこにアプリケーション レベルのロジック (アプリケーション レベルのイベント ディスパッチなど) を配置する必要がありますか?

4

1 に答える 1

1

SkinnableComponentこれもパターンで悩んでいます。ビュー コンポーネントではないクラスでの動作が気に入っています。ビュー コンポーネントへの参照も好きではないので、「プレゼンテーション モデル」パターンを好む傾向があります。ではSkinnableComponent、ホスト コンポーネントは引き続きビュー コンポーネントですが、すべての共有動作を保持します。ちょっとごちゃごちゃしているように感じますが、私はこれの大ファンではありません。ただし、再利用可能でスキン可能なコンポーネントを構築するには、これが非常に良い方法だと思います。たとえば、あなたがコンポーネント開発者であれば、それは素晴らしいことです。

そうは言っても、スキン、ホスト コンポーネント、および個別のビヘイビア クラスを用意するには複雑すぎると思います。このため、スキン可能なコンポーネント用に提供されたパターン (スキンとホスト コンポーネント) に固執する傾向があります。私の経験では、テストがより複雑になりますが、それはそれです。

必要がない場合SkinnableComponent(通常、外部消費用のスキン可能なコンポーネントを作成していないため)、単純に個別のプレゼンテーション パターン (通常は PM) を使用し、スキニング パターンは使用しません。

于 2011-07-17T15:26:43.197 に答える