你的做法是正確的。您需要創建一個您希望應用程序與之交談的服務的抽象,然後提供2個不同的實現:1,用於Web應用程序,可以通過AMF,webservices或http服務使用遠程處理,1用於桌面應用程序,這將有一個SQLite實現。
此方法基本上是策略模式的實現,這是Spring ActionScript框架中的核心模式。包括一個Operation API這將幫助您創建服務類的接口,因爲它們將具有異步簽名。好的一面是,它還支持創建存根服務實現,因此您可以測試應用程序而不依賴於Web或桌面客戶端的實際實現。該框架還提供了不同的配置機制,以便您可以部署應用程序並提供必須在運行時使用的策略。
我做了春天ActionScript中的談話中,我討論了操作API:http://parleys.com/#sl=25&st=5&id=1566
在代碼中,你的服務代碼可能是這樣的:
// interface
public interface IUserService {
function getUserByID(id:String):IOperation;
}
// implementation A
public class UserServiceA implements IUserService {
public function getUserByID(id:String):IOperation {
// return implementation specific operation
}
}
// implementation B
public class UserServiceB implements IUserService {
public function getUserByID(id:String):IOperation {
// return implementation specific operation
}
}
最終的結果是,你的應用程序會談到IUserService並且對實際的實現一無所知。這些實現可以在Spring ActionScript容器中配置和管理,併爲您自動注入。
非常感謝Christophe。你的談話非常有幫助。你可以讓我知道我從哪裏可以得到你在該視頻中顯示的演示的來源。 – Anji 2011-01-28 11:48:52