2014-01-19 33 views
0

我正在使用存儲簡單產品集合的mongoDB。我從mongolab的API訪問這個數據庫,所以沒有直接訪問實際的數據庫。適用於業務持久層的設計模式

另一方面,我有一個產品模型,它與數據庫中的產品文檔具有相同的屬性。

我的問題是:什麼樣的設計模式適合將我的業務層連接到持久層。

到目前爲止,我看到這些步驟:

產品創新:

  1. 創建和填充產品型號
  2. 構建端點URL的API
  3. 發送請求

產品檢索:

  1. getProductByName()getProductByCode()
  2. 調用方法構建端點URL的API
  3. 發送請求
  4. 創建並填充基於響應的產品型號。

我想使持久層儘可能抽象,因爲將來我可能會改變我存儲和檢索數據的方式。此外,這將是一個簡單的應用程序,所以不需要使用複雜的邏輯或完整的ORM。

+0

我忘記提及的一件重要事情是,上述過程作爲異步過程發生在Android應用程序內部,所以在某一點上,還應該有另一個層需要創建和管理不同的後臺進程。 – Zorrocaesar

回答

0

嗯,我不是Android開發者,但我想我的回答可能會有所幫助。如果你的持久層非常簡單,並且你只需要有幾種方法,那麼沒有理由通過過度設計來使它複雜化。如果我是你,我會這樣做:

  1. 向解決方案的DAL層添加一個新項目。
  2. 使用您需要的所有方法創建合同/界面。
  3. 添加您可能需要用作方法的輸入或輸出參數的所有DTO。
  4. 創建一個實現接口的存儲庫類。確保它處理所有API(構建端點等)
  5. 引用業務層中新創建的庫。確保使用IoC來實例化它。重要的是你總是引用界面而不是類本身。
  6. 添加您的業務層的東西和持久層的DTO的

現在,如果你想直接存儲在數據庫中的數據或什麼的,你需要創建一個更加它實現了接口類之間有一些映射邏輯替換舊的。其餘的代碼將保持不變。順便說一下,它將很容易地模擬單元測試的持久層。

希望它有幫助。