[領域模型] 領域模型--Now mission impossible[Java]

[領域模型] 領域模型--Now mission impossible[Java]
潛水N久了,冒個泡,幾年前就在javaeye參與過關於領域模型的討論,越討論我就越對這個模型越沒有信心。
領域模型是什麼? 想到一個笑話: 工作時把我當超人,加薪時把我當隱形人。領域模型就是爲實現這麼個理想而提

出來的。什麼貧血什麼充血,其實就是要實現 對象化編程,把數據庫當做隱形人。再說白點:就是數據庫在與不在一個

樣!對象在故我在,所有的方法都自然而然的加註到這麼個對象上。
領域模型的理想:
還是銀行轉賬這麼個例子:
事務開始:
finder.find(帳戶A)
帳戶A.減(500)。
finder.find(帳戶B)
帳戶B.加(500)。
流水帳戶.記錄(XXX)
事務結束。

但是願望是美好的,現實是殘酷的 持久化是一座難以翻越的高山。就我淺薄的知識範圍內來說,我沒有找到一個很好

的技術解決方案(java)
(1)事務範圍內所有的對象的狀態都要記錄。
(2)事務範圍內所有的對象的變化都要記錄。
(3)事務結束是所有變化了的對象都要回寫入數據庫。
上面這三件事看似簡單,其實也就是所有數據庫操作的全部,即使是hibernate也沒做到這一點:
(1)事務開始時就要建立一個對象圖。
(2)訪問過的所有對象都要納入這個事務發起的對象圖中
(3)無侵入的記錄對象圖中所有字段的變化。
(4)回寫變化了的字段【有可能是增量的】。
(5)當出現異常時候,需要回滾【對象圖是重建還是全部廢棄?】
如果持久化框架能做到上面幾點,才能談真正的領域對象。

目前來說hibernate已經做到了一部分對象圖的功能,但是僅僅是一小部分。


另外我在論壇上經常看到DAO可以隔離數據的存貯,但我要說的是你如果用上了hibernate的話,想要隨時替換成ibats幾乎是不可能的,除非hibernate的大部分功能,你不用。
發佈了8 篇原創文章 · 獲贊 0 · 訪問量 1095
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章