<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      關(guān)于領(lǐng)域驅(qū)動設(shè)計與面向數(shù)據(jù)庫設(shè)計

      2011-09-07 17:44  熬夜的蟲子  閱讀(1929)  評論(1)    收藏  舉報

      ╮(╯▽╰)╭ 開發(fā)時間越長越覺得自己的知識儲備不夠  本篇文章只代表蟲子個人觀點 歡迎大牛們吐槽

      首先,蟲子不會說哪一種更優(yōu)秀,而是說對于新給的需求適合哪種設(shè)計。更貼切的一點,對于一個大型的系統(tǒng)應(yīng)用應(yīng)該兼容2種設(shè)計思想。分2個階段,首先在需求確認階段利用領(lǐng)域驅(qū)動建模,細化模塊、角色、關(guān)系、行為以及資源等。建模不需要太徹底。然后、分塊完畢后在概要設(shè)計階段可以再切換設(shè)計思路,模塊化的應(yīng)用按照面向數(shù)據(jù)庫的設(shè)計思想,這樣在2個階段都利用了2種設(shè)計思想的長度。最大程度的提高系統(tǒng)的價值。

       

      下面來介紹下2種設(shè)計

      1.先來扯扯領(lǐng)域驅(qū)動設(shè)計 借鑒下一些大牛的經(jīng)驗http://www.rzrgm.cn/tsoukw/archive/2007/09/28/908983.html

      系統(tǒng)真正的價值那就是﹕系統(tǒng)能為使用提供什么服務(wù)﹐以及提供的質(zhì)量(即如何服務(wù)﹐這也是系統(tǒng)內(nèi)部的我們要做的事情)。系統(tǒng)之間本質(zhì)的區(qū)別應(yīng)該不是用了什么語言﹐OO還是過程﹐用了什么數(shù)據(jù)庫。因為這兩個系統(tǒng)使用什么語言﹐采用什么方式﹐利用什么DBMS﹐都是不能本質(zhì)區(qū)別這兩個系統(tǒng)的價值的。

      領(lǐng)域模型的價值不在于它的設(shè)計優(yōu)美(它只是一些對象﹐最重要的也就是對象之間的關(guān)系)﹐而在于它體現(xiàn)了系統(tǒng)的核心價值。 

      領(lǐng)域驅(qū)動設(shè)計實質(zhì)上是一種由內(nèi)而外的設(shè)計方法,俗話說的先中間(模型和服務(wù))后兩邊(界面,數(shù)據(jù)庫以及集成)。我的理解是領(lǐng)域驅(qū)動設(shè)計實質(zhì)是業(yè)務(wù)場景和實體驅(qū)動的設(shè)計,有關(guān)注業(yè)務(wù)場景和流程,分析,識別和抽象業(yè)務(wù)對象,進一步分析對象間的創(chuàng)建,關(guān)聯(lián),邏輯和服務(wù)。注意領(lǐng)域模型和多層架構(gòu)和技術(shù)關(guān)聯(lián)很小,更多的是關(guān)注概念模型和業(yè)務(wù)邏輯,因此拋開了多層架構(gòu)和框架本身,先研究領(lǐng)域模型再由內(nèi)而外過渡到數(shù)據(jù)層和界面層,以及多層的集成。
      通常將領(lǐng)域中的組成角色分為以下五種:

      實體(Entity):擁有唯一標識的對象。
      值對象(Value Object):沒有唯一標識的對象。
      工廠(Factory):定義創(chuàng)建實體的方法。
      資源庫(Repository):管理實體的集合并封裝其持久化過程。
      服務(wù)(Service):實現(xiàn)不能指派或封裝在一個單一對象上的操作。

      實體也就是業(yè)務(wù)對象,值對象是沒有行為的,類似于結(jié)構(gòu)體。工廠就是定義創(chuàng)建實體的方法。資源庫的作用是管理實體的集合,并封裝其持久化過程,這里面說明了資源庫管理實體對象的全生命周期。服務(wù)簡單點講就是接口,在做領(lǐng)域分析的時候會發(fā)現(xiàn)有些領(lǐng)域很難映射到對象,擁有屬性和暴露行為,這個時候就應(yīng)該識別為服務(wù)。服務(wù)一個重要作用仍然是屏蔽領(lǐng)域邏輯內(nèi)部復(fù)雜性,體現(xiàn)高內(nèi)聚,松耦合的思想。

      領(lǐng)域模型是一種思維﹐是一種方法,是在系統(tǒng)分析階段使用﹐而不是程序員在自己的代碼中進行純設(shè)計時的工具。我們不是為了OO而領(lǐng)域﹐不是為了最終要新增數(shù)據(jù)庫而領(lǐng)域﹐這也是為什么在沒有理解領(lǐng)域模型本質(zhì)時﹐使用它進行片斷式的代碼編寫﹐得不到任何好處的原因。想想你在編碼中弄出的那些用戶﹐圖書對象﹐它在系統(tǒng)中的位置是什么?您不能否認它就是為了讓新增數(shù)據(jù)庫時更方便吧?

      領(lǐng)域模型的建立決不是像如何實現(xiàn)某些純軟件邏輯而進行的純軟件設(shè)計。(我這里提出的純軟件設(shè)計﹐指的是如何在設(shè)計中體現(xiàn)擴展性﹐靈活性﹐可維護性而進行的設(shè)計)。而是為了能夠分析系統(tǒng)提供的服務(wù)而產(chǎn)生的一種思維結(jié)果。

      系統(tǒng)分析員在接手一個系統(tǒng)后﹐首先要做到的事情就是得出系統(tǒng)的服務(wù)和服務(wù)場景。也就是我們經(jīng)常所講的用例(use case)

      可惜的是﹐很多使用者一直將用例的作用和價值沒弄清楚。我想如果沒有真正理解用例的作用時﹐您的用例分析將會一直停留在和別人Demo系統(tǒng)之上﹐提供一個漂亮的圖形好說話而已﹐而不會對我們的系統(tǒng)開發(fā)有任何實質(zhì)作用。

      用例表示的是使用系統(tǒng)的一個場景﹐其本質(zhì)在于詳細描述了系統(tǒng)用戶(actor)與系統(tǒng)是如何交互的﹐以及交互的后果是什么﹐詳細而完善的用例將指導(dǎo)您進行系統(tǒng)開發(fā)的全過程。

       

      2.再來看看面向數(shù)據(jù)庫設(shè)計

      以數(shù)據(jù)庫為中心的開發(fā)方式﹐將所有業(yè)務(wù)邏輯都放在了數(shù)據(jù)庫﹐并結(jié)合系統(tǒng)的代碼來保證業(yè)務(wù)邏輯的實現(xiàn)。

      數(shù)據(jù)庫模式要面向應(yīng)用系統(tǒng)﹐我們選擇面向?qū)ο蟮南到y(tǒng)設(shè)計也好,面向?qū)ο蟮臄?shù)據(jù)庫設(shè)計也好,根本目的是服務(wù)于應(yīng)用系統(tǒng)的需要。

      從某種意義上講,是數(shù)據(jù)庫設(shè)計的面向?qū)ο筇卣髯罱K奠定了整個系統(tǒng)的面向?qū)ο笮?才使面向?qū)ο蠓椒ㄔ诔绦蜷_發(fā)階段全面開花。其效果歸納如下:

      1. 數(shù)據(jù)庫結(jié)構(gòu)清晰,便于實現(xiàn) OOP  由于實現(xiàn)了應(yīng)用模塊對象對數(shù)據(jù)庫對象的完全映射,數(shù)據(jù)庫邏輯模型可以自然且直接地模擬現(xiàn)實世界的實體關(guān)系。用戶所處的當前物理世界、系統(tǒng)開發(fā)者所抽象的系統(tǒng)外部功能,與支持系統(tǒng)功能的內(nèi)部數(shù)據(jù)庫 (數(shù)據(jù)結(jié)構(gòu))一一對應(yīng),所以用戶、開發(fā)者和數(shù)據(jù)庫維護人員可以用一致的語言進行溝通。特別是對多數(shù)不了解業(yè)務(wù)的程序開發(fā)人員來說,這種將應(yīng)用對象與相應(yīng)的數(shù)據(jù)對象封裝在對象統(tǒng)一體中的設(shè)計方法,大大減輕了程序?qū)崿F(xiàn)的難度,使他們只要知道加工的數(shù)據(jù)及所需的操作即可,而且應(yīng)用程序大多雷同,可以多處繼承由設(shè)計人員抽象出來的、預(yù)先開發(fā)好的各種物理級超類。

      2. 數(shù)據(jù)庫對象具有獨立性,便于維護  除了數(shù)據(jù)庫表對象與應(yīng)用模塊對象一一對應(yīng)外,在邏輯對象模型中我們沒有設(shè)計多重繼承的泛化關(guān)系,所以這樣得到的數(shù)據(jù)庫結(jié)構(gòu)基本上是由父表類和子表類構(gòu)成的樹型層次結(jié)構(gòu),表類間很少有繼承以外的復(fù)雜關(guān)系,是一個符合局部化原則的結(jié)構(gòu),從而使數(shù)據(jù)庫表數(shù)據(jù)破壞的影響控制在局部范圍且便于修復(fù),給系統(tǒng)開通后的數(shù)據(jù)庫日常維護工作帶來便利。

      3. 需求變更時程序與數(shù)據(jù)庫重用率高,修改少  在映射應(yīng)用對象時,除關(guān)系映射規(guī)范化后可能出現(xiàn)一對多的表映射外,大多數(shù)應(yīng)用對象與表對象是一一對應(yīng)的。我們可以把規(guī)范化處理后的、由一個應(yīng)用對象映射出來的多個表看成一個數(shù)據(jù)庫對象。因此當部分應(yīng)用需求變更時,首先,系統(tǒng)修改可以不涉及需求不變更的部分。其次,變更部分的修改可以基本上只限于追加或刪除程序模塊或追加新庫表,而基本上不必。

       

       


       

       

       

      主站蜘蛛池模板: 白水县| 亚洲精品无码久久一线| 91中文字幕在线一区| 99在线国内在线视频22| 最新AV中文字幕无码专区| 精品一区二区三区女性色| 麻豆a级片| 狠狠v日韩v欧美v| 免费人妻无码不卡中文字幕系| 日韩日韩日韩日韩日韩熟女| 中文字幕国产精品日韩| 亚洲av永久无码精品天堂久久| 北岛玲中文字幕人妻系列| 不卡高清AV手机在线观看| 女子spa高潮呻吟抽搐| av中文无码乱人伦在线观看| 亚洲精品亚洲人成人网| 商城县| 国产精品SM捆绑调教视频| 无码一区中文字幕| 久久精品夜夜夜夜夜久久| 99久久亚洲综合精品成人| 亚洲成a人片在线观看中| 开心五月激情五月俺亚洲| 99中文字幕国产精品| 国产成熟女人性满足视频| 国产极品美女高潮抽搐免费网站 | 天天做日日做天天添天天欢公交车| 久久不卡精品| 欧美亚洲h在线一区二区| 国产丝袜视频一区二区三区 | 中文字幕乱码一区二区免费| 韩国精品一区二区三区在线观看| 日本久久久www成人免费毛片丨 | 999国产精品999久久久久久 | 蜜臀久久精品亚洲一区| 潮喷无码正在播放| 日本三级理论久久人妻电影| 麻豆久久久9性大片| 铁力市| 91福利视频一区二区|