領域驅動設計之工廠模式實現場景

在領域模型設計中有一種工具或者概念叫工廠,它雖然不屬於領域業務對象的範疇,但是卻是領域設計中必不可少的,最近看了些書,總結了下工廠模式在領域設計中的應用實現:

一、領域對象內通過工廠方法實現對象的創建,體現在下面兩種情景:

      1.根據領域分析,得出領域聚合關係,對此聚合關係對應的對象進行創建,即可通過在領域根對象中增加工廠方法,實現對此領域對象的創建。比如:

           對象a和b屬於一個領域範疇,並且a的生命週期決定b,對此領域的訪問,只能通過a實現,因此,a就是領域根對象;此領域根對象的創建包括a和b,因此可以在a內部實現工廠方法來創建領域根對象a(內部需要創建a和b,並建立關聯)

      2.對象A雖然不屬於對象B,但是對象A的創建需要依賴於對象B的數據,則可以在對象B中實現工廠方法來創建對象A

二、通過創建單獨對象工廠來創建領域對象

       1.當需要用工廠來封裝對象的創建細節時,但是又找不到自然的領域對象(實體)來容納工廠方法時,即可創建單獨工廠對象來實現對象的創建

      2.聚合根內部的對象需要工廠來封裝細節,但是聚合根又不適合去做這件事情時,也可以利用單獨工廠對象來實現對象的創建

三、不是所有對象的創建都需要工廠模式

      當出現以下情形時,可以直接用類構造函數創建對象:

       1.對象不屬於任何層次結構的一部分並且構造函數足夠簡單,也沒有通過接口來實現多態

       2.客戶關心對象的具體實現,比如java中的集合對象,雖然定義接口實現多態,但考慮到性能等原因,需要明確知道是用集合的那個具體實現,因此,可以直接創建對象

 

       無論是用哪種方式創建對象,都需要遵循原子操作原則;

 

      

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章