首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 繽紛校園 英語學習 | ||
![]() |
2010考研 | 自學考試 | 成人高考 | 專 升 本 | 法律碩士 | MBA/MPA | 中 科 院 | |
![]() |
四六級 | 商務英語 | 公共英語 | 職稱日語 | 職稱英語 | 博思 | 口譯筆譯 | GRE GMAT | 日語 | 托福 | |
雅思 | 專四專八 | 新概念 | 自考英語 | 零起點英、法、德、日、韓語 | 在職申碩英語 | ||
在職攻碩英語 | 成人英語三級 | ||
![]() |
等級考試 | 水平考試 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 | |
![]() |
公務員 | 報關員 | 報檢員 | 外銷員 | 司法考試 | 導游考試 | 教師資格 | 國際商務師 | 跟單員 | |
單證員 | 物流師 | 價格鑒證師 | 銀行從業資格 | 證券從業資格 | 人力資源管理師 | 管理咨詢師 | ||
期貨從業資格 | 社會工作者 | ||
![]() |
會計職稱 | 注會CPA | 經濟師 | 統計師 | 注冊稅務師 | 評估師 | 精算師 | 高會 | ACCA | 審計師 | |
法律顧問 | 會計證 | ||
![]() |
一級建造師 | 二級建造師 | 造價師 | 監理師 | 安全師 | 咨詢師 | 結構師 | 建筑師 | 安全評價師 | |
房地產估價師 | 土地估價師 | 設備監理師 | 巖土工程師 | 質量資格 | 房地產經紀人 | 造價員 | ||
投資項目管理 | 土地代理人 | 環保師 | 環境影響評價 | 物業管理師 | 城市規劃師 | 公路監理師 | ||
公路造價工程師 | 招標師 | ||
![]() |
執業護士 | 執業醫師 | 執業藥師 | 衛生資格 |
在JiveJdon3中,com.jdon.jivejdon.service.ForumService和Forum實體模型及其值對象ForumState共同完成領域模型,其中ForumService屬于應用服務層;而后兩者屬于領域層;其他服務ForumMessageService、AccountService和UploadService等都是此類性質。
領域對象的生命周期Scope
Spring 1.x剛出來時確實忽悠了大家一把,因為他沒有領域對象的生命周期支持,直到Spring 2.0才將如new Bean scope,當初那些瘋狂捧Spring 1.x 臭腳的所謂高手是不是還是基于數據庫驅動的思維,根本沒有真正OO模式思維,當今天JBoss Seam、Scopes等框架開始重視對象生命周期支持后,曾經發生在Jdon社區爭戰硝煙已經過去,成為歷史。
Eric認為:每個對象獨有器生命周期,一個對象在創建以后,可能要經歷各種不同的狀態,并最終消亡。 對象生命周期由長短:臨時對象;常駐內存;有的與其他對象存在復雜的依賴關系;狀態變化時必須滿足一些不變量的約束條件。 如何管理這些對象提出挑戰!處理不好會偏離MDD的方向。
在生命周期中維護對象的完整性。避免模型由于管理生命周期的復雜性而陷入困境。有 三個模式來處理:聚合(Aggregate):定義清晰的所有權和邊界使模型更加緊湊,避免出現盤根錯節的對象關系網;工廠(Factory)和組合(Respository)。
當一個對象生命周期之始,使用工廠和組合提供了訪問和控制模型對象的方法,完善了MDD。 建立聚合的模型,并且把工廠和組合加入設計中來,可以使我們系統地對模型對象進行管理。 聚合圈出一個范偉,在這個范圍中,對象無論在哪個生命周期,保持不變性。
在JiveJdon3.0中,值對象ForumState是被聚合在實體模型Forum中,Forum作為ForumState的一個根,由于它們數據必須保持一致性,不變量(invariant)是指無論何時發生數據變化必須滿足一致性規則,由于根控制了訪問,就無法繞過它修改內部元素,例如,如果沒有Forum實體對象這個根,就無法去修改對象狀態ForumState,ForumState獲得是通過Forum的getter方法獲得的。
ForumState和Forum的分離有可以使修改狀態數據(當發一個新帖時,必須更新當前的最新帖子為該新帖),不會影響到Forum其他元素,特別是使用事務鎖定時,不必鎖住整個對象,見"領域驅動設計"書籍P92。
另外,ForumThread和ForumMessage的關聯關系必設定成單向的,而不是雙向的,因為領域建模中,關聯越簡單越好。