2010-08-23 102 views
2

取一個與其他幾個類有關係的類。第一類可以看作聚合(根)。從服務層的角度看,如何最好地分割呼叫?集合,存儲庫和服務層

  1. 呼叫骨料的整個對象圖形庫,並從該特定存儲庫的其他儲存庫調用來處理關係的保存(每類類型的一個倉庫。
  2. 呼叫總的存儲庫整個對象圖和處理所有這一個方法(因此在同一方法中保存所有關係)
  3. 從服務層中,調用聚合的存儲庫,然後直接在服務層中調用存儲庫,調用相關類的存儲庫
  4. 在s之間添加一個額外的圖層額外的層內ervice和庫和不喜歡選項3

我已經看到在生產代碼中所有3個可能的解決方案,但我感興趣的是乾淨的解決方案和理由,爲什麼一個會選擇這種方法。

回答

0

對我來說,它將是選項1和2之間的選擇(我喜歡儘可能簡化「上層服務層」)。

我會選擇哪一個將取決於如何使用個別類型的聚合;如果他們是總是(至少當前)用作這個聚合的一部分而不是獨立的,我可能會讓聚合存儲庫也處理它們(但可能仍然在單獨的方法中),但是如果單個部分也可以獨立使用(或者作爲其他聚合的一部分),我可能會傾向於爲它們分開版本庫對象,並從聚合存儲庫調用這些版本庫。