積累,創(chuàng)造,分享!

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            25 Posts :: 13 Stories :: 26 Comments :: 0 Trackbacks

          關(guān)注領(lǐng)域模型有一段時間了,不論是分析階段的還是設(shè)計階段的。
          其實領(lǐng)域模型的概念很早就有了,但是其概念非常容易被人混淆,首先我們要明確一下這個詞的語境:
          它在軟件開發(fā)的分析與設(shè)計的兩個階段分別代表不同的含義。
          在分析階段,領(lǐng)域模型完全是根據(jù)需求和用例得出的產(chǎn)物,關(guān)于此時領(lǐng)域模型的概念,可以參考拉爾曼的UML模式與應(yīng)用這本書(在第一版里面叫做概念模型),里面有一個明確的定義,在分析階段的領(lǐng)域模型是不考慮程序?qū)崿F(xiàn)上的問題的,也就是說完全是現(xiàn)實邏輯的體現(xiàn),只不過也是通過UML的類圖將其含義表達出來,這個時候的領(lǐng)域模型圖是不包括方法的,只有概念,屬性和關(guān)聯(lián)。它的側(cè)重點是分析,通過它去更好的理解系統(tǒng)。不過目前結(jié)合國內(nèi)的項目情況來看,在行業(yè)領(lǐng)域內(nèi),這方面的積累還不是很多,大部分項目還是停留在大量的需求文檔階段,并沒有去積累出精練的領(lǐng)域模型。

          而在設(shè)計階段,是以分析階段的領(lǐng)域模型作為依據(jù),在分析階段通過用例,需求得到一個真實世界的模型,但是離實際軟件開發(fā)中的類還是有一定差距的,需要不斷細化才能得到軟件中的類進一步的提煉成為真正的類,這個類是出現(xiàn)在J2EE框架的領(lǐng)域?qū)樱?它也叫做領(lǐng)域模型,目前在網(wǎng)上討論的最多的,實際上都是指設(shè)計階段的領(lǐng)域模型的實現(xiàn)。而這個時候提到的領(lǐng)域模型與分析階段是有區(qū)別的,某些概念都可能會有變更。在這個階段,有Eric Evans提出的Domain-Driven Design的理論支撐,有Martin Fowler在企業(yè)應(yīng)用架構(gòu)模式中的Domain Model做指引,我個人認為DDD當(dāng)中是更側(cè)重于設(shè)計階段的,通過DDD當(dāng)中所提供的方法可以很科學(xué)的得到領(lǐng)域?qū)拥念I(lǐng)域模型。這個時候還會是去考慮到如何實現(xiàn),關(guān)注對象之間流轉(zhuǎn),對象的狀態(tài),以及如何持久化,比如利用hibernate,jdo,ejb等技術(shù)去進行持久化。
          據(jù)我目前所了解的情況,在當(dāng)前J2EE的大部分開發(fā)框架下,利用設(shè)計階段的領(lǐng)域模型用來實施的項目也并不多。究其也原因是多方面的,很多帖子里面都討論過。即使是在hibernate出來已經(jīng)有幾年的今天,很多人還是在針對數(shù)據(jù)庫表結(jié)構(gòu)進行開發(fā),在利用面向?qū)ο蟮恼Z言做著面向過程的事,思想也不是1,2天就能轉(zhuǎn)變過來的。

          posted on 2008-03-23 00:01 nighthawk 閱讀(1657) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 宜宾市| 民勤县| 泉州市| 濮阳县| 会东县| 阿拉尔市| 江都市| 伊川县| 伊宁市| 南开区| 景东| 康乐县| 澜沧| 廉江市| 柘城县| 威海市| 嘉定区| 仪征市| 合阳县| 澎湖县| 科尔| 肇源县| 桐城市| 旅游| 赤壁市| 运城市| 花垣县| 柳林县| 深圳市| 华坪县| 抚顺市| 什邡市| 景宁| 文成县| 无锡市| 武宁县| 荣昌县| 江城| 册亨县| 昌平区| 泽库县|