中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

DDD~概念中(zhong)的DDD

回到目錄

概念中的DDD

DDD: 領(ling)域(yu)驅動(dong)設(she)(she)(she)計(ji),它(ta)是對(dui)(dui)面(mian)(mian)向(xiang)對(dui)(dui)象的(de)(de)的(de)(de)分析和(he)設(she)(she)(she)計(ji)(OOAD,Object Orient Analysis Design)的(de)(de)一(yi)個補充,對(dui)(dui)技(ji)術框架(jia)進行(xing)(xing)了(le)分層規劃,同時對(dui)(dui)每個類(lei)進行(xing)(xing)了(le)策略和(he)類(lei)型(xing)劃分。領(ling)域(yu)模型(xing)是領(ling)域(yu)驅動(dong)的(de)(de)核心 ,采(cai)用DDD的(de)(de)設(she)(she)(she)計(ji)思(si)想,業務(wu)邏(luo)輯不再集中在幾個大(da)型(xing)的(de)(de)類(lei)上,而是在大(da)量相對(dui)(dui)小的(de)(de)領(ling)域(yu)對(dui)(dui)象上,這些類(lei)具有自己(ji)的(de)(de)狀(zhuang)態和(he)行(xing)(xing)為,每個類(lei)都是完(wan)成(cheng)(cheng)的(de)(de)獨立(li)的(de)(de),并與現實領(ling)域(yu)的(de)(de)業務(wu)對(dui)(dui)象形成(cheng)(cheng)一(yi)種(zhong)映射(she)。基于DDD的(de)(de)架(jia)構(gou)設(she)(she)(she)計(ji),保證了(le)系(xi)統(tong)的(de)(de)可維護(hu)性(xing),擴展性(xing)和(he)敏捷(jie)性(xing),在處理(li)復雜業務(wu)邏(luo)輯方面(mian)(mian)有著明顯(xian)的(de)(de)優勢!

編程世界觀的改變

以下(xia)信息是從//www.jdon.com/ddd.html上拷貝的,寫的很好,這確實是一種編程世界觀的改變(bian),而傳(chuan)傳(chuan)統編程觀念完全不(bu)同

過去需求分析和系統設計都是分離的,正如我們國家“系統分析師” 和“系統設計師” 兩種職稱考試一樣,這樣割裂的結果導致,需求分析的結果無法直接進行設計編程,而能夠進行編程運行的代碼卻扭曲需求,導致客戶運行軟件后才發現很多功能不是自己想要的,而且軟件不能快速跟隨需求變化

  DDD則打破了這種(zhong)隔(ge)閡,提出了領域模型概念,統一了分析和設計編程,使得(de)軟件能夠更靈活快速跟(gen)隨(sui)需(xu)求變化(hua)。

  DDD革命性在于:領域模型準確反映了業務語言,而傳統的分層架構只關心數據, 這些數據對象除了簡單讀、寫操作外,沒有任何業務方法,被比喻成失血模型,那么領域模型這種帶有業務方法的充血模型到底好在哪里?

看到領域模型代碼(ma),就看到業務需求(qiu),沒有翻譯沒有轉換(huan),保(bao)證軟(ruan)件真正實(shi)現“拷貝不走樣”。

DDD最大的好處是:接觸到需求第一步就是考慮領域模型,而不是將其切割成數據和行為,然后數據用數據庫實現,行為使用服務實現,最后造成需求的首肢分離。DDD讓你首先考慮的是業務語言,而不(bu)是數(shu)據(ju)。重點(dian)不(bu)同導致編程世界觀(guan)不(bu)同。

DDD的特點

  • 分層架構
  1. 成熟,清晰的分層架構
  2. 領域對象與世界的業務映射
  3. 明確的職責劃分
  • 復用性
  1. 領域對象是核心
  2. 領域對象復用:完整的業務對象描述
  3. 設計利用:設計基于領域對象而非基于數據庫的
  • 適用場合
  1. 具備復雜業務邏輯的軟件開發
  2. 對設計和開發人員要求較高
  3. 不適合普通的CURD操作
  4. 系統的維護性與擴展性較高

對于DDD系統架構的分層

不(bu)使(shi)用DDD思想(xiang)進(jin)行系統設計時,一(yi)般(ban)會分(fen)為3層,如數(shu)據層,業務層和表現層,而使(shi)用DDD這后,分(fen)層的(de)方式(shi)發生了一(yi)些改變,先來看(kan)一(yi)下(xia)

  1. 表現層:也叫WEB層,UI層,一般體現出來的是頁面的布局,可以用web mvc,web form,win form等去實現
  2. 應用層:用來協調應用活動,它不包含業務邏輯,它不保留業務對象的狀態,但它保存應用任務的進度狀態
  3. 領域層:包含領域信息,這是業務軟件的核心,它保留業務對象的狀態,對業務對象和它們狀態的持久化工作委托給基礎設施層
  4. 基礎設施層:是其它層的基礎,實現對業務對象的持久化,還對WEB層可以引用本層

DDD中的幾個核心對象

Entities:這不是(shi)簡單(dan)的poco實體,而是(shi)具備(bei)了業務(wu)邏(luo)輯的實體

Factories:工廠類,用(yong)來生(sheng)產對象

Respositories:持久化,它本身就是DAO (Data Access Objects) 數據訪問對象

Services:服務層,為上層提(ti)供了操作的接口,負責對(dui)象領域對(dui)象進行調試(shi)和封裝,同時(shi)提(ti)供了各種形(xing)式的服務  

 

OK,今天這講先說到這里,只是概念,要求我們去理解它,事實上,這種理解確實有別于之前的架構思想,它是一種與傳統方式截然不同的,需要我們用心去體會!

感謝您的閱讀

 

相關文章

DDD~概念中的DDD

DDD~充血模型和失血模型

DDD~基礎設施層

DDD~microsoft NLayerApp項目中的層次結構圖

DDD~領域層

DDD~Unity在DDD中的使用

 

回到目錄

posted @ 2013-02-05 10:02  張占嶺  閱讀(22616)  評論(5)    收藏  舉報