2011-05-02 40 views
1

我擁有保存到數據庫(插入,更新,刪除)的持久對象。把這個邏輯結合在一個方法中更好嗎 - 保存還是有3個獨立的凝聚方法?方法內聚力

回答

0

這真的有賴於。一般來說,我會保持刪除單獨,我傾向於更新/插入一個單一的方法。

0

我的首選項可能是使用一個公共的Save方法,並根據需要讓該函數調用Insert,Update或Delete方法。這些方法可以是保護或私人的,無論是否符合設計。

[編輯]:我應該補充說,我可能不會將該代碼放入模型類中,而是將其移入它自己的存儲庫類中。我發現保持模型類非常簡單可以爲您的設計提供最大的靈活性。

1

你絕對不應該將它們組合成一個單一的方法,因爲這會違反Single Responsibility Principle(我從我自己的經驗中發現適用於方法設計以及類設計),並且會增加cyclomatic complexity並因此增加測試工作量。

出於同樣的原因,您可能會希望有專門爲此目的設置這3種方法的課程。

關於凝聚力,3個獨立的方法是相關的(就像你的情況一樣)並放在課堂上,將保持良好的凝聚力,但請記住其他class design principles以及。

+0

單一責任原則+1。 – 2012-11-25 05:12:01