我擁有保存到數據庫(插入,更新,刪除)的持久對象。把這個邏輯結合在一個方法中更好嗎 - 保存還是有3個獨立的凝聚方法?方法內聚力
Q
方法內聚力
1
A
回答
0
這真的有賴於。一般來說,我會保持刪除單獨,我傾向於更新/插入一個單一的方法。
0
我的首選項可能是使用一個公共的Save方法,並根據需要讓該函數調用Insert,Update或Delete方法。這些方法可以是保護或私人的,無論是否符合設計。
[編輯]:我應該補充說,我可能不會將該代碼放入模型類中,而是將其移入它自己的存儲庫類中。我發現保持模型類非常簡單可以爲您的設計提供最大的靈活性。
1
你絕對不應該將它們組合成一個單一的方法,因爲這會違反Single Responsibility Principle(我從我自己的經驗中發現適用於方法設計以及類設計),並且會增加cyclomatic complexity並因此增加測試工作量。
出於同樣的原因,您可能會希望有專門爲此目的設置這3種方法的課程。
關於凝聚力,3個獨立的方法是相關的(就像你的情況一樣)並放在課堂上,將保持良好的凝聚力,但請記住其他class design principles以及。
相關問題
- 1. 凝聚力和耦合力
- 2. 通信凝聚力
- 3. 聚合物火力:與火力
- 4. 計算凝聚塊凝聚力igraph 0.5.4
- 5. 增加凝聚力飼料
- 6. MongoDB聚合性能能力
- 7. 約束力,借款方法
- 8. 幻方蠻力算法
- 9. 力mapstruct不叫有*方法
- 10. D3:多邊形內的聚集力佈局
- 11. 用於測量耦合和內聚力的工具
- 12. 方法中的凝聚力 - 計算和輔助函數怎麼樣?
- 13. GloVe語義聚類方法
- 14. MongoDB的聚合方法
- 15. 以有凝聚力的方式組合「函數」組合
- 16. 聚合物使用getElementsby#方法在內部-h-t-m-l
- 17. 在推力函子內調用推力算法
- 18. 耦合與凝聚力設計
- 19. 花樣:高凝聚力模式
- 20. 火力地堡聚合物從存儲
- 21. 用聚合物火力顯示數據
- 22. 什麼算法/方法被用來使用暴力方法?
- 23. 如何選擇分層凝聚聚類的聯動方法?
- 24. 用的String.Format能力測井方法
- 25. Fixnum的力量!方法潛在危險?
- 26. 力HTTPS(SSL)對WCF WebGet方法
- 27. NodeJs壓力測試工具/方法
- 28. Bin包裝暴力破解方法
- 29. 親和力傳播的二元方法
- 30. 求解方程的非蠻力方法的編程算法
單一責任原則+1。 – 2012-11-25 05:12:01