2011-01-28 70 views
0

我需要使用flex開發應用程序。要求是開發一個Web應用程序和一個桌面應用程序。我需要爲這個應用程序使用數據庫。我瞭解到,有一個本地數據庫可用於空中應用。使用adobe flex web和桌面應用程序

我不想最終編寫兩個應用程序,因此希望儘可能重複使用儘可能多的代碼。

所以,這裏是我的這個計劃:

  1. 使庫項目。
  2. 寫一個類似httpservice的空間與本地數據庫進行交互。
  3. 負責調用正確服務(httpservice或定製服務)的中間層。
  4. 僅與上述中間層交互數據的UI。

任何人都可以建議,如果這是可行的,或可以分享他們以前的經驗或有任何其他想法?

回答

1

你的做法是正確的。您需要創建一個您希望應用程序與之交談的服務的抽象,然後提供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容器中配置和管理,併爲您自動注入。

+0

非常感謝Christophe。你的談話非常有幫助。你可以讓我知道我從哪裏可以得到你在該視頻中顯示的演示的來源。 – Anji 2011-01-28 11:48:52

相關問題