首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 繽紛校園 英語學(xué)習(xí)
2010考研 | 自學(xué)考試 | 成人高考 | 專 升 本 | 法律碩士 | MBA/MPA | 中 科 院
四六級(jí) | 商務(wù)英語 | 公共英語 | 職稱日語 | 職稱英語 | 博思 | 口譯筆譯 | GRE GMAT | 日語 | 托福
雅思 | 專四專八 | 新概念 | 自考英語 | 零起點(diǎn)英、、、、韓語 | 在職申碩英語
在職攻碩英語 | 成人英語三級(jí)
等級(jí)考試 | 水平考試 | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
公務(wù)員 | 報(bào)關(guān)員 | 報(bào)檢員 | 外銷員 | 司法考試 | 導(dǎo)游考試 | 教師資格 | 國(guó)際商務(wù)師 | 跟單員
單證員 | 物流師 | 價(jià)格鑒證師 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 人力資源管理師 | 管理咨詢師
期貨從業(yè)資格 | 社會(huì)工作者
會(huì)計(jì)職稱 | 注會(huì)CPA | 經(jīng)濟(jì)師 | 統(tǒng)計(jì)師 | 注冊(cè)稅務(wù)師 | 評(píng)估師 | 精算師 | 高會(huì) | ACCA | 審計(jì)師
法律顧問 | 會(huì)計(jì)證
一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)師 | 監(jiān)理師 | 安全師 | 咨詢師 | 結(jié)構(gòu)師 | 建筑師 | 安全評(píng)價(jià)師
房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 設(shè)備監(jiān)理師 | 巖土工程師 | 質(zhì)量資格 | 房地產(chǎn)經(jīng)紀(jì)人 | 造價(jià)員
投資項(xiàng)目管理 | 土地代理人 | 環(huán)保師 | 環(huán)境影響評(píng)價(jià) | 物業(yè)管理師 | 城市規(guī)劃師 | 公路監(jiān)理師
公路造價(jià)工程師 | 招標(biāo)師
執(zhí)業(yè)護(hù)士 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 衛(wèi)生資格
您現(xiàn)在的位置: 考試吧(Exam8.com) > 軟件水平考試 > 系統(tǒng)分析師 > 正文

實(shí)戰(zhàn)DDD(Domain-DrivenDesign領(lǐng)域驅(qū)動(dòng)設(shè)計(jì))[1]

  2004年著名建模專家Eric Evans發(fā)表了他最具影響力的著名書籍:Domain-Driven Design –Tackling Complexity in the Heart of Software(中文譯名:領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) 2006年3月清華出版社譯本,或稱 Domain Driven-Design architecture [Evans DDD])。

  Martin Fowler作序說;“希望本書是一本非常有影響力的書籍,....... Eric最值得我尊敬的一個(gè)方面是他敢于討論還未取得成功的事情”,其實(shí),時(shí)值今年2006年,DDD開發(fā)框架已經(jīng)層出不窮(如RoR、RIFE、JdonFramework等),我們項(xiàng)目軟件包結(jié)構(gòu)都變成了這樣:xxx.model;xxx.service,DDD思想已經(jīng)遍地開花,不能再說不成功了。

  DDD是告訴我們?nèi)绾巫龊脴I(yè)務(wù)層!并以領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)思想來選擇和合適的框架,以基于JdonFramework開發(fā)的JiveJdon3.0說明DDD方法的實(shí)戰(zhàn)應(yīng)用。

  首先必須認(rèn)識(shí)到:領(lǐng)域建模是一種藝術(shù)的技術(shù),不是數(shù)學(xué)的技術(shù),它是用來解決復(fù)雜軟件快速應(yīng)付變化的解決之道(快速適應(yīng)需求變化的軟件復(fù)用)。

  我們知道軟件的產(chǎn)生過程是:分析、設(shè)計(jì)、編程、測(cè)試、部署。過去,分析領(lǐng)域和軟件設(shè)計(jì)是分裂的,分析人員從領(lǐng)域中收集基本概念;而設(shè)計(jì)必須指明一組能北項(xiàng)目中適應(yīng)編程工具構(gòu)造的組件,這些組件必須能夠在目標(biāo)環(huán)境中有效執(zhí)行,并能夠正確解決應(yīng)用程序出現(xiàn)的問題。 模型驅(qū)動(dòng)設(shè)計(jì)(Model-Driven Design)拋棄了分裂分析模型與設(shè)計(jì)的做法,使用單一的模型來滿足這兩方面的要求。這就是領(lǐng)域模型。

  單一的領(lǐng)域模型同時(shí)滿足分析原型和軟件設(shè)計(jì),如果一個(gè)模型實(shí)現(xiàn)時(shí)不實(shí)用,重新尋找新模型。如果模型沒有忠實(shí)表達(dá)領(lǐng)域關(guān)鍵概念時(shí),也必須重新尋找新的模型。 建模和設(shè)計(jì)成為單個(gè)迭代循環(huán)。將領(lǐng)域模型和設(shè)計(jì)緊密聯(lián)系。因此,建模專家必須懂設(shè)計(jì),會(huì)編程。

  分層架構(gòu)

  最初層次只分為三層:表現(xiàn)層、業(yè)務(wù)層和持久層;DDD其實(shí)告訴我們?nèi)绾巫寣?shí)現(xiàn)業(yè)務(wù)層!

  一位網(wǎng)友曾經(jīng)請(qǐng)教層次的職責(zé),對(duì)服務(wù)Service提出疑問。根據(jù)Eric的理論,業(yè)務(wù)層將細(xì)分為兩個(gè)層次:應(yīng)用層和領(lǐng)域?qū)。它們的定義是:應(yīng)用層:定義軟件可以完成的工作,并且指揮具有豐富含義的領(lǐng)域?qū)ο髞斫鉀Q問題,保持精練;不包括業(yè)務(wù)規(guī)則或知識(shí),無業(yè)務(wù)情況的狀態(tài); 領(lǐng)域?qū)樱贺?fù)責(zé)表示業(yè)務(wù)概念、業(yè)務(wù)狀態(tài)的信息和業(yè)務(wù)規(guī)則,是業(yè)務(wù)軟件核心。

  層次之間必須清晰分離,每個(gè)層都是內(nèi)聚的,并且只依賴它的下層,為了實(shí)現(xiàn)各層的最大解耦,Ioc模式和Ioc容器是目前最好的選擇,JdonFramework使用基于PicoContainer的Ioc容器實(shí)現(xiàn)了各層的松耦合;

  Eric特別指出:那種將業(yè)務(wù)邏輯交由業(yè)務(wù)界面處理的快速UI方式是旁門左道。希望象C/S結(jié)構(gòu)那樣可視化拖拖圖形就完成的軟件開發(fā)是一種錯(cuò)誤的方向,開發(fā)時(shí)快速,難于維護(hù)和擴(kuò)展,雖然使用J2EE技術(shù),其實(shí)是一種偽多層技術(shù)。可惜,有很多國(guó)人在瘋狂開發(fā)這類工具,大有不撞南墻不低頭之勢(shì),并且瘋狂誤導(dǎo)很多非專業(yè)人士,可悲可嘆!如果對(duì)這段言論持不同意見,建議你購(gòu)買"領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)"這本譯書,見P53頁。

  領(lǐng)域模型種類

  傳統(tǒng)模型分為兩種:實(shí)體(Entity)和值對(duì)象(Value Object),現(xiàn)在服務(wù)(Service)成為第三種模型元素。

  實(shí)體(Entity)定義:通過一系列連續(xù)性(continuity)和標(biāo)識(shí)(identity ID)來定義;個(gè)人認(rèn)為它和分析領(lǐng)域的四色原型中的PPT原型非常類似,可以看成是PPT原型延續(xù)。

轉(zhuǎn)帖于:軟件水平考試_考試吧
文章搜索
實(shí)戰(zhàn)DDD(Domain-DrivenDesign領(lǐng)域驅(qū)動(dòng)設(shè)計(jì))[1]網(wǎng)友評(píng)論網(wǎng)友評(píng)論
版權(quán)聲明 --------------------------------------------------------------------------------------
    如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請(qǐng)注明出處。
 gaoxiaoliang