DDD深思,物件裝備模型
關於該思想的實現,請參照 實現物件裝備模式http://www.javaeye.com/topic/81086
本來想說很多客套話的,但拿捏不好語氣,該帖子主要討論一個草根想法。
大家一看就知道我是新鳥一隻,只是在這混了好久,第一次發言,想讓大牛們給我指導一下,我的收穫會很大。
先謝謝了,請儘量看完。(如時間不充足,請看紅色部分!)
草根來源:
場景——一個自運營的入口網站
系統——考慮了很久,打算用DWR+MeshCMS+guice+Db4o,輕輕輕量級。。。。
思路——使用基於檔案的內容管理,生成靜態的內容資料頁,動態互動使用ServerPush,完全OO模型,直接物件持久
問題——使用物件資料庫,那我的領域模型怎麼工作,要DAO合適嗎?魔鬼告訴我,db4o的session太好用了,耦合吧-_-
思考——在學習google的guice期間,當時正好看到方法注入,本想跳過,一般我不用,但突然想到了,既然db4o不適合
儲存複雜業務的物件,那麼我在物件取出時給他注入他將要用到的業務邏輯方法。。。。。Service輕鬆了好多,好像更
OO了。。。。於是,請看下文
OO的特性裡,繼承、封裝、多型,我又聯想到一個名詞,那就是包裝。與其說DDD中有貧血模型,不如說
是裸體模型,他沒有穿任何衣服、裝備、寵物、家族等等(扯到網路遊戲裡了)。不過事實就是如此,我們
的生活中不可能離開這些,那在程式設計的原始社會,從低階到高階,好像人會站立行走了,從過程到OO好像
人們有語言和溝通了,越來越接近自然的法則就是,我們的物件要穿衣服了,不光要有衣服,還要有手套、
工具、坐騎、家(持久層?!)。玩過變裝類遊戲角色的人知道,當他們換衣服時等於換了一種角色
換了一種特有屬性,唯一不同的就是基礎屬性,他的動作和專注點發生了變化,那麼,我們的軟體中,每個
物件好像不是一種角色,只完成單一的任務,而是在不同的場景,使用不同的服務,發生不同的動作,造成
不同的變化,那麼每一套物件之外的動作、屬性、狀態是不是像裝備一樣包裝著這個物件呢?!是不是可以
給物件準備好一套裝備,在他要去工作或者執行任務以前把他武裝起來而不是裸體上陣呢?我想問問物件,
你喜歡極品裝備嗎? 當然他回答不了我,但我列了幾個我自以為的可選答案:
A.無所謂(仍然保持原始的性感美麗)
B.喜歡(嚮往現代文明)
C.賊喜歡(迫切的願望說明他厭惡了裸奔的日子)
D.討厭,就是喜歡暴露 (。。。。。。。你男的女的?不對,公的母的?還不對,雄的雌的?反正變態)
這只是一個雛形,一種想法和衝動,我沒有腦力和能力繼續實踐他,至少目前還沒有,要休息下腦子才可以,
而且我的知識結構混亂,也不敢繼續想,但是直接告訴我這個道路在黑暗中有一思光明,好像從小到大我的
這種感覺總是很準。還有一點想說的是,程式設計師的性格和興趣不同,就好像遊戲裡的不同職業團隊裡的不同
角色,總是可以完成任務,不在乎哪中道路達到目標。只是我感覺周圍有像我一樣,那種路都不想選擇而又
想要到達目的地的人,仍然在繼續找尋一個新的道路(“世上本沒有路,走的人多了便成了路”)。
在JavaEye的討論帖http://mewleo.javaeye.com/blog/79536
本來想說很多客套話的,但拿捏不好語氣,該帖子主要討論一個草根想法。
大家一看就知道我是新鳥一隻,只是在這混了好久,第一次發言,想讓大牛們給我指導一下,我的收穫會很大。
先謝謝了,請儘量看完。(如時間不充足,請看紅色部分!)
草根來源:
場景——一個自運營的入口網站
系統——考慮了很久,打算用DWR+MeshCMS+guice+Db4o,輕輕輕量級。。。。
思路——使用基於檔案的內容管理,生成靜態的內容資料頁,動態互動使用ServerPush,完全OO模型,直接物件持久
問題——使用物件資料庫,那我的領域模型怎麼工作,要DAO合適嗎?魔鬼告訴我,db4o的session太好用了,耦合吧-_-
思考——在學習google的guice期間,當時正好看到方法注入,本想跳過,一般我不用,但突然想到了,既然db4o不適合
儲存複雜業務的物件,那麼我在物件取出時給他注入他將要用到的業務邏輯方法。。。。。Service輕鬆了好多,好像更
OO了。。。。於是,請看下文
OO的特性裡,繼承、封裝、多型,我又聯想到一個名詞,那就是包裝。與其說DDD中有貧血模型,不如說
是裸體模型,他沒有穿任何衣服、裝備、寵物、家族等等(扯到網路遊戲裡了)。不過事實就是如此,我們
的生活中不可能離開這些,那在程式設計的原始社會,從低階到高階,好像人會站立行走了,從過程到OO好像
人們有語言和溝通了,越來越接近自然的法則就是,我們的物件要穿衣服了,不光要有衣服,還要有手套、
工具、坐騎、家(持久層?!)。玩過變裝類遊戲角色的人知道,當他們換衣服時等於換了一種角色
換了一種特有屬性,唯一不同的就是基礎屬性,他的動作和專注點發生了變化,那麼,我們的軟體中,每個
物件好像不是一種角色,只完成單一的任務,而是在不同的場景,使用不同的服務,發生不同的動作,造成
不同的變化,那麼每一套物件之外的動作、屬性、狀態是不是像裝備一樣包裝著這個物件呢?!是不是可以
給物件準備好一套裝備,在他要去工作或者執行任務以前把他武裝起來而不是裸體上陣呢?我想問問物件,
你喜歡極品裝備嗎? 當然他回答不了我,但我列了幾個我自以為的可選答案:
A.無所謂(仍然保持原始的性感美麗)
B.喜歡(嚮往現代文明)
C.賊喜歡(迫切的願望說明他厭惡了裸奔的日子)
D.討厭,就是喜歡暴露 (。。。。。。。你男的女的?不對,公的母的?還不對,雄的雌的?反正變態)
這只是一個雛形,一種想法和衝動,我沒有腦力和能力繼續實踐他,至少目前還沒有,要休息下腦子才可以,
而且我的知識結構混亂,也不敢繼續想,但是直接告訴我這個道路在黑暗中有一思光明,好像從小到大我的
這種感覺總是很準。還有一點想說的是,程式設計師的性格和興趣不同,就好像遊戲裡的不同職業團隊裡的不同
角色,總是可以完成任務,不在乎哪中道路達到目標。只是我感覺周圍有像我一樣,那種路都不想選擇而又
想要到達目的地的人,仍然在繼續找尋一個新的道路(“世上本沒有路,走的人多了便成了路”)。
在JavaEye的討論帖http://mewleo.javaeye.com/blog/79536
相關文章
- 運用領域模型——DDD模型
- 在DDD中建立領域模型模型
- TypeScript如何實現DDD的值物件?TypeScript物件
- DDD聚合的數學模型 -Thomas Ploch模型
- 貧血模型 - DDD - The Domain Driven Design模型AI
- DDD中簡單模型比複雜模型更危險模型
- 領域模型驅動設計(DDD)之模型提煉模型
- 貧血模型與充血模型比較 - DDD - The Domain Driven Design模型AI
- DDD | 03-什麼是實體物件物件
- DDD模型探索的Whirl pool設計流程模型
- DDD-領域物件與領域服務物件
- DOM 模型(文件物件模型)重點模型物件
- C++ 物件模型C++物件模型
- C++物件模型C++物件模型
- 新增模型物件操作模型物件
- 向banq老師請教:ddd中的值物件物件
- 模型驅動設計的構造塊(上)——DDD模型
- 領域驅動模型DDD(一)——服務拆分策略模型
- 做飯裝備
- 裝備購買
- 英文DDD培訓線上課程推薦: 從失血模型重構到充血模型模型
- DDD中實體與值物件是幹什麼的物件
- JVM(八):Java 物件模型JVMJava物件模型
- C++物件模型:objectC++物件模型Object
- RAC安裝備註
- cacti安裝備忘
- DDD值物件:被遺忘的價值 – SoftwareMill Tech Blog物件REM
- 從DDD中實體和值物件的逆向思考想到的物件
- 領域驅動模型DDD(三)——使用Saga管理事務模型
- 乾貨|輕鬆學DDD之一:模型驅動設計模型
- Java物件記憶體模型Java物件記憶體模型
- c++中的物件模型C++物件模型
- 初識文件物件模型(DOM)物件模型
- 使用NSUserDefault儲存物件模型物件模型
- C++物件模型詳解C++物件模型
- ADO.NET物件模型物件模型
- Delphi物件模型(Part V) (轉)物件模型
- Delphi物件模型(Part IV) (轉)物件模型