我擁有保存到數據庫(插入,更新,刪除)的持久對象。把這個邏輯結合在一個方法中更好嗎 - 保存還是有3個獨立的凝聚方法?方法內聚力
Q
方法內聚力
1
A
回答
0
這真的有賴於。一般來說,我會保持刪除單獨,我傾向於更新/插入一個單一的方法。
0
我的首選項可能是使用一個公共的Save方法,並根據需要讓該函數調用Insert,Update或Delete方法。這些方法可以是保護或私人的,無論是否符合設計。
[編輯]:我應該補充說,我可能不會將該代碼放入模型類中,而是將其移入它自己的存儲庫類中。我發現保持模型類非常簡單可以爲您的設計提供最大的靈活性。
1
你絕對不應該將它們組合成一個單一的方法,因爲這會違反Single Responsibility Principle(我從我自己的經驗中發現適用於方法設計以及類設計),並且會增加cyclomatic complexity並因此增加測試工作量。
出於同樣的原因,您可能會希望有專門爲此目的設置這3種方法的課程。
關於凝聚力,3個獨立的方法是相關的(就像你的情況一樣)並放在課堂上,將保持良好的凝聚力,但請記住其他class design principles以及。
相關問題
- 1. 凝聚力和耦合力
- 2. 通信凝聚力
- 3. 力mapstruct不叫有*方法
- 4. 用於測量耦合和內聚力的工具
- 5. 方法中的凝聚力 - 計算和輔助函數怎麼樣?
- 6. GloVe語義聚類方法
- 7. 以有凝聚力的方式組合「函數」組合
- 8. 聚合物使用getElementsby#方法在內部-h-t-m-l
- 9. 耦合與凝聚力設計
- 10. 花樣:高凝聚力模式
- 11. 火力地堡聚合物從存儲
- 12. 用聚合物火力顯示數據
- 13. 親和力傳播的二元方法
- 14. 力HTTPS(SSL)對WCF WebGet方法
- 15. 用的String.Format能力測井方法
- 16. Fixnum的力量!方法潛在危險?
- 17. 用正確的方法來努力來命名這個方法
- 18. 參數化聚合的最佳方法
- 19. 降維聚類在R(PCA等方法)
- 20. Gephi中的聚類(Louvain方法)
- 21. 聚焦方法執行一次
- 22. 聚合物 - 聽衆方法未定義
- 23. Java內存壓力
- 24. 「抽象」在「班級凝聚力」或「班級凝聚力」代碼指標中意味着什麼?
- 25. 構建Asp.net MVC控制器文件夾以獲得更好的內聚力
- 26. Pygame - 重力法
- 27. iPhone力的方向
- 28. 通過聚合火力/火力點查詢元素將數據推送到Firebase
- 29. 使用改造方法更具表現力的方式
- 30. 內蒙古方法
單一責任原則+1。 – 2012-11-25 05:12:01