日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

圖書館驚魂記之一(一個(gè)簡單的領(lǐng)域模型的建立過

系統(tǒng) 2498 0

在大學(xué)里的某一天,一個(gè)漆黑的夜晚,我來到了一個(gè)學(xué)校里陰森的圖書館,雖然說不喜歡,但是為了考試不要零蛋,所以拼死也要溫書了。來到圖書館的柜臺(tái)前,遇到了圖書管理員。然后我跟管理員說:“我來借書了”,管理員頭也不抬的把手一指:“書架在那邊,自己去找”。

--------------------------------------------------------------------------------

image

---------------------------------------------------------------------------------

書架實(shí)在是很多,都是分門別類的把書放好在上面的,每個(gè)書架上都有標(biāo)簽,標(biāo)明了這個(gè)書架上放的什么類型的書。

---------------------------------------------------------------------------------

image

---------------------------------------------------------------------------------

于是我一排排的在書架上開始瀏覽有些啥書

---------------------------------------------------------------------------------

image

---------------------------------------------------------------------------------

看到一本還不錯(cuò)的書,我就把書取出來,然后看看書的內(nèi)容

------------------------------------------------------------------------------------------------

image ????? image

------------------------------------------------------------------------------------------------

看了看,寫的不錯(cuò),于是拿著這本書去找管理員:“我要借這本啊”。管理員二話沒說,拿個(gè)本子記下來我借了這本書,然后在書上打個(gè)標(biāo)簽

------------------------------------------------------------------------------------------------

image

------------------------------------------------------------------------------------------------

然后我就接到了這本有用地書,然后回去溫書考試去了。

?

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

以上的內(nèi)容只是一個(gè)簡單例子的模擬,而生成的類圖也是很粗略的,我們通過對業(yè)務(wù)行為的分析(經(jīng)典的借書過程來分析得到上面的圖形-為了簡單我直接用了VS的類圖,其實(shí)不是很規(guī)范,有很多建模工具可以使用, 領(lǐng)域模型的分析沒有一定之規(guī)所以可能每個(gè)人分析出來的模型并不相同 ,所以如果你覺得有其他的理由,畫成了其他的樣子,那是完全合理的),回到主題,我們要通過領(lǐng)域模型來驅(qū)動(dòng)我們的設(shè)計(jì),但是,我們要弄明白的是什么是領(lǐng)域模型的分析,適合什么地方,什么時(shí)候不適合。

領(lǐng)域模型(Domain Model)是一個(gè)商業(yè)建模范疇的概念,他和軟件開發(fā)并無一絲一毫的關(guān)系,即使一個(gè)企業(yè)他不開發(fā)軟件,他也具備他的業(yè)務(wù)模型,所有的同行業(yè)的企業(yè)他們的業(yè)務(wù)模型必定有非常大的共性和內(nèi)在的規(guī)律性,由這個(gè)行業(yè)內(nèi)的各個(gè)企業(yè)的業(yè)務(wù)模型再向上抽象出來整個(gè)行業(yè)的業(yè)務(wù)模型,這個(gè)東西即“領(lǐng)域模型”。一個(gè)掌握了行業(yè)領(lǐng)域模型的軟件公司,根本不需要再給人家開發(fā)項(xiàng)目了,根本不需要靠軟件開發(fā)養(yǎng)活自己了,你光給這個(gè)行業(yè)的企業(yè)提供業(yè)務(wù)咨詢已經(jīng)賺得非常豐厚的利潤了。

由此我們可知,領(lǐng)域模型的分析并不是我們要做這個(gè)軟件的時(shí)候要做的,而是在這個(gè)軟件所要實(shí)現(xiàn)的業(yè)務(wù)模式出現(xiàn)的時(shí)候就可以開始,所以領(lǐng)域建模比較適合需求比較固定,且業(yè)務(wù)模式比較成熟的領(lǐng)域。我們首先建立起一個(gè)領(lǐng)域模型,然后用最簡單直接的類去實(shí)現(xiàn)這個(gè)模型。這個(gè)時(shí)候我們不涉及數(shù)據(jù)庫以及持久化等等細(xì)節(jié),然后對模型進(jìn)行精化,利用設(shè)計(jì)模式將類進(jìn)行分解,將領(lǐng)域模型的類的職責(zé)用多個(gè)小類來實(shí)現(xiàn)。

比如User類,我們可以用Factory模式加上Facade模式把這個(gè)類的職能和持久化行為(數(shù)據(jù)層的行為)解耦。

其實(shí)DDD不一定就是代表著臃腫的實(shí)體類,而我們很多時(shí)候是在自己設(shè)計(jì)的時(shí)候因?yàn)閷O和設(shè)計(jì)模式的運(yùn)用不夠熟練從而設(shè)計(jì)出了臃腫的實(shí)體類(我自己其實(shí)也經(jīng)常弄出這種類出來-不過通過運(yùn)用設(shè)計(jì)模式重構(gòu),在大多數(shù)情況下是可以改變的)。作為一個(gè)合格的程序員,能夠快速的完成需求是必要的條件。但是如果只是要求能夠做出來實(shí)現(xiàn)需求,是不是對自己的要求過低了點(diǎn),我們不光是需要能跑起來的程序,還需要穩(wěn)定健壯的程序,更甚的是優(yōu)美的實(shí)現(xiàn)程序,如果僅僅是滿足于實(shí)現(xiàn)需求,借用星爺?shù)囊痪湓挘喝藳]有追求,那和咸魚有什么分別:)

圖書館驚魂記之一(一個(gè)簡單的領(lǐng)域模型的建立過程)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 大姚县| 丰镇市| 英超| 社旗县| 三门县| 安陆市| 余姚市| 五原县| 吉木乃县| 巫溪县| 奉节县| 民权县| 河东区| 南充市| 手游| 西林县| 北宁市| 佛教| 台山市| 法库县| 天峨县| 开阳县| 泰州市| 南澳县| 库车县| 房山区| 吉首市| 十堰市| 奉节县| 临洮县| 玛多县| 黔西| 工布江达县| 通江县| 广元市| 醴陵市| 孝感市| 调兵山市| 育儿| 咸宁市| 五峰|