0

私のフレックス アプリケーションでは、サービスをよく使用します。アプリケーションでデータを更新するためにそれらが必要なので、かなり頻繁に呼び出します。現在、次の方法で実装しました。

1) サービスプロバイダ (AMFLoader クラス) がある 2) 応答ハンドラ (Responder クラス) がある

コードは次のようになります。

public function AMFLoader(url:String):void
{
     gateway = new NetConnection();
     gateway.connect(url);
}

public function callAMFLoader(serviceName:String, param:String,  resultHandler:AMFResultHandler):void
{
     gateway.addEventListener(IOErrorEvent.IO_ERROR, resultHandler.onIENetError);
     gateway.addEventListener(NetStatusEvent.NET_STATUS, resultHandler.onNetStatus);
     responder = new Responder(resultHandler.onSuccess, resultHandler.onFalse);
     gateway.call(serviceName,responder, param);

}

および結果ハンドラ クラス:

public class AMFResultHandler
{
    public function AMFResultHandler()
    {
    }


    public function onSuccess(result:*):void
    {
        trace("Result from basic AMF Result handler on success: " + result);
    }

サービスを呼び出すために、基本的な Result ハンドラ クラスを拡張し、カスタム関数を作成して結果を処理します。通常、最新の段階では、サービスから受け取ったデータをメイン アプリケーションで定義したグローバル変数にバインドし、それを他のクラスで使用します。

現在、これがグローバル変数を使用するのが非常に面倒なことであることに気付きました。それを行うのが良いプログラミング スタイルかどうかはわかりません。たとえば、コードをリファクタリングしようとしたときに、誰が、いつ (そして、なぜ) データを入力したのかを理解するのが難しい場合があることに気付きました。

サービス呼び出しからのデータを保存する方法を提案できるかもしれません。私が理解できていない主なことは、サービスの呼び出しとデータの保存は別のものであるため、getData などのメソッドを作成してアプリケーションのどこかで呼び出すことはできないということです (データはいくつかのイベントでのみ受信されるため)。 ....

前もって感謝します。

4

3 に答える 3

1

あなたが求めているのは、MVC フレームワークの主な目的の 1 つです。具体的には、モデルまたはデータ インターフェイスについて話します。まだ本格的なフレームワークを使用したくない場合は、2 つのクラスを作成する必要があります。

1) データオブジェクト

2) データモデル

「データ」は、ユーザーや製品などの直感的なものに置き換えられます。DataObject では、データのプロパティのみを保持します。同様に、データが正しいと想定される唯一の場所です。ただし、DataObject は、DataModel を介して直接アクセスされるだけです。データ モデル内には、DataObject のすべてのゲッターとセッター、および DataObject に入力する必要があるすべてのリモート サービス呼び出しを保持します。

これは、MVC スタイルのアプリケーション開発の始まりに過ぎません。より柔軟で管理しやすいコードに本当に移行したい場合は、本格的なフレームワークを使用することを検討する必要があります。私がお勧めするのは次の2つです。

1) Swiz ( http://swizframework.org/ ) : 非常にシンプルなイベント駆動型フレームワークで、flex の力を実際に活用しています。

2) PureMVC ( http://puremvc.org/ ) : コードの分離と厳密な MVC アーキテクチャを重視した、理解しやすい MVC コード構造。

この 2 つのうちの 1 つから始めれば、より優れたフレックス開発者になることができるでしょう。


いくつかの優れたチュートリアル:

スイス: http://vimeo.com/7166397

pureMVC: http://active.tutsplus.com/tutorials/workflow/understanding-the-puremvc-open-source-framework/

于 2009-11-04T16:17:49.653 に答える
1

役立つ Flex フレームワークがいくつかあります。

これらの各フレームワークは、モデルとサービスをより適切に整理するのに役立ちます。それぞれを見て、あなたが快適なものを選んでください。

于 2009-11-04T13:06:05.540 に答える
0

個人的にはメイトも好きです。私は本当に彼らのフレームワークを掘り下げており、現在取り組んでいるいくつかのプロジェクトにそれを後付けしています。

于 2009-11-05T20:37:38.717 に答える