0

現在、Pythonをベースにしたflex4 + robotlegs + as3signals+googleアプリエンジンを使用して非常に大きなアプリを構築しています。

1)問題は、ビューからメディエーターへ、およびメディエーターからコンテキストへと同じシグナルを再取得していることに気付いていることです。

2)もう1つの問題は、モデルで1つのメソッドを実行するだけのメディエーターからのシグナルに対してコマンドを実行していることです。

flex 4を使用すると、スキンがビジネスロジックから分離される可能性があることに注意してください。つまり、スキン、そのスキンのコンポーネント(SkinnableComponent)、およびモデルがあります。それが私の新しいアプローチです。コンポーネントは肌をリッスンします。コンポーネントには強い型のモデルオブジェクト(挿入)があり、メソッドを直接呼び出します。コンポーネントは、ディスパッチするモデル信号をリッスンします。コンポーネントは以上です。メディエーターはコンポーネントで変換されます。また、コマンドは使用されません。

ここで問題は次のとおりです。ビュー(私の場合はコンポーネントと呼びます)をメディエーターにマッピングする代わりに、使用されていないため、メディエーターが接続されていないコンポーネントをマッピングするだけです。次に、コンポーネントが[Inject]メタタグを使用できるようにします。

これが私に必要なものです、それを実装する方法について何かアイデアはありますか?そしてもちろん、私はあなたの意見を聞いてそれを批判することを嬉しく思います、それは常に改善するのに役立ちます;)

御時間ありがとうございます!;)

コード:

[スキン]ユーザーによって引き起こされたイベントをディスパッチします

[Component]はメディエーターに似ていますが、SkinnableComponentを拡張するため、まったく異なります。スキンイベントをキャッチします。強い型のモデルがあります。次に、モデルの直接メソッドを呼び出します。モデルを聞いてください。モデルがイベントをディスパッチすると、コンポーネントの状態が変化します。

...
[Inject]
public var accountModel:AccountModel;
[Inject]
public var xxxModel:XxxModel;

// then the component run methods on it and listen on it. easy and no complications.

【モデル】何も知らない。イベントまたはシグナルをディスパッチするだけです。

4

2 に答える 2

1

ここでクラスを保存していますが、ビューコンポーネントに追加の知識と責任を追加しています. もちろん、これは機能します。Robotlegs でのプレゼンテーション モデルの使用に関する私の記事を参照してください。あなたが説明するように私はそれをお勧めしません。私がこのように仕事をするつもりなら、それは間違いなくPMと一緒です.

于 2010-11-26T18:36:47.303 に答える
0

Piotr Walczyszynによる Adob​​e TV の記事をご覧ください。

彼は、Robotlegs を含む多くの DI AS3/Flex フレームワークを比較しています。

于 2010-11-26T08:40:37.510 に答える