我在哪裏工作,我們已經多次討論這個問題,並正在尋求一個完整的檢查。下面是問題:Business Objects應該是數據容器(更像是DTO),還是應該包含可以在該對象上執行某些功能的邏輯。Business Objects - 容器還是功能?
示例 - 如果客戶對象包含一些常用屬性(名稱,Id等),並且該客戶對象還包含函數(Save,Calc等)?
一條推理說,將對象與功能(單一責任主體)分開,並將功能放入業務邏輯層或對象中。
另一種推理說,不,如果我有一個客戶對象,我只想調用Customer.Save並完成它。爲什麼我需要知道如何保存客戶,如果我消費對象?
我們最近的兩個項目已經將功能與對象分開了,但是關於新項目的爭論再次提出。哪個更有意義?
編輯
這些結果非常相似,我們的辯論。對一方或另一方投一票將徹底改變方向。還有其他人想要加2美分嗎?
EDIT
Eventhough答案採樣小,似乎大多數相信在業務對象的功能是可接受的,只要它是簡單的,但持久性最好放在一個單獨的類/層。我們會試試這個。感謝大家的輸入......
只是澄清......你的想法是計算和其他簡單的函數應該駐留在對象中,但持久性(即.db事務)應駐留在別處。我有這個權利嗎? – Walter 2009-11-25 13:31:48
是的,這就是我要說的。當然,這不是唯一的方法。有些人喜歡有物體堅持自己。我通常不會。 – duffymo 2009-11-25 20:37:58
我們一直在討論業務對象或None中的所有功能。這是我們從未想到的一種可能的妥協。 – Walter 2009-11-30 23:04:46