應該爲聚合中的每個對象創建一個單獨的類,還是應該將這些對象作爲單個聚合類的嵌套類?如何在MVC模式中表示域聚合?
2
A
回答
2
這取決於對象和它所包含的對象有多緊密耦合。如果您有一個Person類,並且該人擁有零至多個電話號碼,則通常希望PhoneNumber成爲一個單獨的類,因爲許多不同類型的對象都可能具有電話號碼(例如,企業,學校等)。 )。但是,如果對象是自然而然地緊密結合的東西,例如Person對象可以有腳趾,那麼內部類可能是有意義的。
您可能想問自己的一些問題是: 1.聚合對象是否需要訪問包含類的私有片段?如果是這樣,一個內部類是一個很好的選擇。 2.聚合對象是否總是隻屬於一個對象,並且它所屬的對象從不改變?如果不是,那麼你可能不想要一個內部類。 3.聚合對象是否在聚合對象的上下文之外有意義?如果是這樣,它可能不應該是一個內部類。
如果有疑問,通常最好使用單獨定義的類,如果沒有其他原因會導致耦合關閉並縮小源文件。
也並不是說它不一定是一個無論是或事。您始終可以定義一個單獨的類或接口,然後在聚合類中進行子類化/實現。
2
如果聚集的對象是可分離的,即它們可能單獨出現,也可能出現在聚合中,那麼每個對象都有一個單獨的類,並使用類型化的集合來表示聚集。
1
不確定MVC與域聚合有什麼關係,因爲可以在沒有UI的情況下使用後者。
我通常更喜歡將聚合的各個部分分開,因爲這些部分可以具有獨立的商業含義。當外部類必須在內部類之前加載或無法使內部類公開(至少這些內容適用於Java)時,嵌套類纔有意義。
相關問題
- 1. 如何在Telerik MVC Grid聚合頭中顯示非聚合模型值?
- 2. 域模型聚合
- 3. ASP.NET MVC 3區域和DDD聚合根
- 4. 在聚合表達式
- 5. 如何在數據庫模式中表示哈希表集合?
- 6. 如何識別域模型中的聚合根?
- 7. 我應該如何處理ASP MVC中的聚合模型?
- 8. 如何在Scala中編寫聚合模式?
- 9. 星型模式:事實表聚合是如何執行的?
- 10. 聚合模式,SOA(SplitJoin OSB)
- 11. 建模聚合根或域服務?
- 12. 存儲庫模式中的聚合根
- 13. SOA服務中的聚合模式
- 14. Hibernate聚合+ Spring MVC
- 15. 如何在MVC模型中展示MVC視圖(* .cshtml)的項目集合ASP.NET MVC
- 16. 域驅動設計的聚合模式和休眠@OneToMany單向
- 17. 如何聚合表達SSRS
- 18. 模糊K模式聚類如何找到聚類中心
- 19. django表單域 - 如何在表單模板中顯示值
- 20. 如何在ASP.NET MVC中顯示混合形式?
- 21. 倉庫模式聚合和聚合根與實體框架4.0
- 22. 如何reolve對包含聚合或子查詢的表達式聚合函數
- 23. 如何表示JSON模式中的總和/聯合類型
- 24. Mongo聚合 - 表達式中的$?
- 25. 如何表示OOP中的平均值和其他聚合值?
- 26. SQL - JOIN聚合表與非聚合表
- 27. 如何在QT中維護MVC模式
- 28. MVC模式如何在ZKoss中工作
- 29. 如何在Tkinter中實現MVC模式
- 30. 域驅動設計聚合