在我的Flex應用程序中,我使用了很多服務。我需要他們在應用程序中更新我的數據,所以經常給他們打電話。目前,我實現它的方式如下:AS3:如何組織代碼,以防遠程服務被調用
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);
}
要對服務的調用我擴展基本結果處理類和自定義函數來處理重sults。通常在最新階段,我將從服務接收到的數據綁定到我在主應用程序中定義的全局變量,然後在其他類中使用它。
目前我注意到,使用全局變量是一件非常煩人的事情,不知道這是否是一種很好的編程風格。 例如,當我嘗試重構我的代碼時,我注意到有時很難理解誰在什麼時候(以及爲什麼)在那裏填充數據。
也許你可以提出一種存儲服務調用數據的方法。我不明白的主要是我們不能只創建一個方法,例如getData,並在應用程序的某個地方調用它,因爲調用服務和存儲數據是不同的事情(因爲數據只在某些事件中被接收到)......
在此先感謝。
潛水在... 所以看到你後:)它希望我會習慣快速使用它 –