讀《實戰DDD(Domain-Driven Design領域驅動設計:Evans DDD)》想到的

xyz發表於2009-04-23
由於最近又回爐(兼職學生),就打算按照課程的安排重新思考一些事情。

講到建模我拜讀了一下板橋里人的《實戰DDD(Domain-Driven Design領域驅動設計:Evans DDD)》<BR>有些問題如下:

1》請允許我說下這片文章的問題,寫文章是為了讓大家都能看懂。所以請用明確的語句明確的寫出您的觀點看法,有些東西對於您來說是呼之欲出的,點到就可以了,但是對於我這個菜鳥級的是做不到的。

您提到的Spring狀態問題。據我瞭解大多數人用Spring管理的業務bean,這些bean99.9999%都是單例的,沒有自己的非執行緒安全的成員變數的,一些和狀態相關的都是值物件,儲存在httpsession中的。這樣的使用方式是不是有問題,如果有具體如何使用呢????

3》對於貧血模式。物件的抽象有兩種方式一個是資料抽象一個是職責抽象,貧血模式更像是資料抽象出來的東西。這樣抽象出來的物件有問題,就是拔了毛的雞就是人的問題,因為人被抽象成沒有毛兩條腿直立行走的動物,所以拔了毛的雞是人。

按照職責抽象我理解可行的操作就是狀態和行為同時抽象。這樣的物件有強行為(不僅僅有getset弱行為)現實告訴我更好用些,我詳細研究了jbpm的程式碼與設計(我可能就是板橋里人說得看電視要先拆了看看構造的人)jbpm是一個非常好的OO以及Hibernate使用的例子。

而通常的做法是同時抽象了行為與狀態,但是又符合了貧血模式。即把狀態單獨放到一個pojo中,有些行為放到dao中。這個似乎是非常流行的做法。但是在使用當中,特別是有體現多型的性的時候,我也確實碰到了一些問題,由於行為和狀態單獨抽象了最後在使用的時候不得不在把他們組合起來。這樣的dao確實也不再是為了資料庫的不同而進行的橋接與適配了。不知道我上述的理解是否正確?板橋里人 真正提倡的又是一種什麼方式呢?

[該貼被admin於2009-04-28 07:13修改過]

相關文章