前端工程師-企業(yè)級系統(tǒng)架構(gòu)的理解_第1頁
前端工程師-企業(yè)級系統(tǒng)架構(gòu)的理解_第2頁
前端工程師-企業(yè)級系統(tǒng)架構(gòu)的理解_第3頁
前端工程師-企業(yè)級系統(tǒng)架構(gòu)的理解_第4頁
前端工程師-企業(yè)級系統(tǒng)架構(gòu)的理解_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、企業(yè)級系統(tǒng)架構(gòu)的理解在我們剛開始學(xué)習(xí)架構(gòu)的時候,首先會想到分層的概念,分層架構(gòu)比較經(jīng)典的是三層架構(gòu),那么,什么是三層架構(gòu)呢?它包括表現(xiàn)層,業(yè)務(wù)層,數(shù)據(jù)訪問層;而對于一個新手來說,從抽象意義上的三層架構(gòu),邏輯上就劃分為三個層。 AD: 這個是最基基本的三三層架構(gòu)構(gòu)模式。表現(xiàn)層充當(dāng)當(dāng)系統(tǒng)的的界面呈呈現(xiàn)以及及UI邏邏輯的角角色,也也就是說說,UII(用戶戶界面)屬于表表現(xiàn)層;舉一個對于于aspp.neet WWebFFormm來說,人人們喜歡歡把對于于UI的的控制邏邏輯(服服務(wù)器控控件的讀讀取、設(shè)設(shè)置、事事件等等等)寫在在頁面的的后置隱隱藏代碼碼中,并并且依賴賴業(yè)務(wù)邏邏輯層。當(dāng)當(dāng)然,服服務(wù)器控控件支

2、持持數(shù)據(jù)綁綁定的功功能,可可以通過過數(shù)據(jù)源源進行綁綁定控件件。這樣樣就可以以節(jié)省在在后置隱隱藏中的的代碼。因此,我們們就可以以把表現(xiàn)現(xiàn)層分為為UI用用戶界面面以及UUI邏輯輯:UI用戶界界面的職職責(zé)只是是作為數(shù)數(shù)據(jù)輸入入和輸出出后的展展示工作作。UI邏輯的的職責(zé)是是負責(zé)業(yè)業(yè)務(wù)邏輯輯層以及及UI用用戶界面面之間的的數(shù)據(jù)交交互,并并且盡可可能地讓讓UI邏邏輯不依依賴于UUI技術(shù)術(shù)。其中UI用用戶界面面的實現(xiàn)現(xiàn)方式有有很多,包包括ASSP.NNET,WWinFFormm,WPPF,SSilvverllighht,移移動Weeb,智智能設(shè)備備等等。將表現(xiàn)層中中UI頁頁面和UUI邏輯輯分離的的策略中中,

3、當(dāng)前前使用最最多的兩兩種模式式是MVVC模式式和MVVP模式式。MVC模式式,即模模型-視視圖-控控制器模模式,通通過視圖圖觸發(fā)并并執(zhí)行某某個操作作,調(diào)用用控制器器,通過過控制器器去操作作業(yè)務(wù)層層,最終終返回模模型,在在視圖中中進行展展示。這這里的模模型可以以是一個個領(lǐng)域模模型(DDM),也也可以是是一個數(shù)數(shù)據(jù)遷移移對象(DTOO)。MVP模式式,即模模型-視視圖-展展示器模模式,和和MVCC模式有有點像,不不同的是是MVPP中視圖圖和模型型是被完完全分離離出來的的,視圖圖中定義義一個接接口,而而展示器器通過調(diào)調(diào)用該接接口的方方法以控控制視圖圖。因此此,視圖圖和模型型是松散散的,展展示器也也充

4、當(dāng)了了一個控控制器的的角色,同同時它也也不依賴賴于UII技術(shù)。另外再介紹紹一種模模式PMM(Prreenntattionn Moodell),它它可以說說是MVVP的變變體,在在PM中中,視圖圖不定義義接口,這這里的模模型只是是表示視視圖狀態(tài)態(tài)的類,視視圖中的的元素被被直接綁綁定到模模型屬性性上。例例如在WWPF中中,WPPF就先先天的具具有數(shù)據(jù)據(jù)雙向綁綁定機制制以及事事件通知知屬性機機制。所以它特別別適用于于WPFF,Slliveerliightt等等。在開始業(yè)務(wù)務(wù)層之前前,不得得不說一一個前提提,在一一個小型型項目中中,直接接讓表現(xiàn)現(xiàn)層調(diào)用用業(yè)務(wù)層層,足以以解決所所有問題題。但是是,當(dāng)項項

5、目大到到使用多多種表現(xiàn)現(xiàn)形式,如如使用了了各種UUI技術(shù)術(shù),ASSP.NNET,WWPF,移移動設(shè)備備等等,就就要考慮慮在你的的表現(xiàn)層層和業(yè)務(wù)務(wù)層之間間增加一一個層,以以至于讓讓表現(xiàn)層層和業(yè)務(wù)務(wù)層解耦耦,因為為業(yè)務(wù)層層作為一一個業(yè)務(wù)務(wù)中間件件的平臺臺,最好好不要暴暴露于表表現(xiàn)層中中,這個個層就是是傳說中中的服務(wù)務(wù)層。架架構(gòu)圖又又演化為為:服務(wù)層實際際上并不不執(zhí)行任任何具體體的工作作,其功功能在于于組織各各個業(yè)務(wù)務(wù)對象,服務(wù)層層將業(yè)務(wù)務(wù)層所有有的細節(jié)節(jié)對表現(xiàn)現(xiàn)層都隱隱藏起來來,服務(wù)務(wù)器將組組織業(yè)務(wù)務(wù)邏輯層層中的組組件,并并且通過過數(shù)據(jù)遷遷移對象象(DTTO)與與表現(xiàn)層層交互,因此就就產(chǎn)生一一個D

6、TTO模型型。為了實現(xiàn)服服務(wù)的可可重用性性,需要要使用服服務(wù)接口口,表現(xiàn)現(xiàn)層通過過規(guī)定的的接口訪訪問功能能。服務(wù)務(wù)的實現(xiàn)現(xiàn)繼承服服務(wù)接口口,而服服務(wù)的實實現(xiàn)專注注于業(yè)務(wù)務(wù)層的調(diào)調(diào)用。對于服務(wù)層層,常用用的方法法包括WWeb服服務(wù)、.NETT Reemottingg、Reest以以及WCCF技術(shù)術(shù)。本人比較建建議使用用WCFF作為服服務(wù),因因為可以以方便地地通過配配置達到到遠程調(diào)調(diào)用服務(wù)務(wù)的目的的。服務(wù)層消除除了兩個個表現(xiàn)層層和業(yè)務(wù)務(wù)層之間間的耦合合,服務(wù)務(wù)層可以以實現(xiàn)一一個遠程程接口,達達到多UUI技術(shù)術(shù)甚至多多平臺上上的通信信。當(dāng)然增加服服務(wù)層也也有缺點點,假如如使用WWCF服服務(wù),會會增加

7、系系統(tǒng)的調(diào)調(diào)用開銷銷,進而而影響性性能。業(yè)務(wù)層中包包含系統(tǒng)統(tǒng)所需要要業(yè)務(wù)過過程上的的實現(xiàn),并并與下層層的數(shù)據(jù)據(jù)訪問層層交互。我們通常也也叫做業(yè)業(yè)務(wù)層叫叫做業(yè)務(wù)務(wù)邏輯層層,但我我認為業(yè)業(yè)務(wù)邏輯輯層是屬屬于業(yè)務(wù)務(wù)層的一一方面,業(yè)業(yè)務(wù)邏輯輯更專注注于業(yè)務(wù)務(wù)上邏輯輯算法的的實現(xiàn)。因因為業(yè)務(wù)務(wù)層還可可以包括括其他的的方面。業(yè)務(wù)層必須須包括對對業(yè)務(wù)實實體盡心心建模的的對象模模型,表表達了客客戶的所所有策略略和需求求的業(yè)務(wù)務(wù)規(guī)則,因因此就產(chǎn)產(chǎn)生了領(lǐng)領(lǐng)域模型型。(PS:如如果這里里你不使使用領(lǐng)域域模型,那那么需要要采用業(yè)業(yè)務(wù)規(guī)則則層進行行業(yè)務(wù)功功能上的的業(yè)務(wù)規(guī)規(guī)則的驗驗證和控控制)領(lǐng)域模型包包括對實實體的屬屬

8、性定義義,方法法定義以以及實體體與實體體之間的的關(guān)系。從從這個角角度上看看,UMML建模模至關(guān)重重要,通通過對UUML動動態(tài)圖和和靜態(tài)圖圖的描述述,可以以映射到到領(lǐng)域模模型中。從服務(wù)層剛剛才講到到了DTTO模型型,這里里需要一一個機制制將DTTO轉(zhuǎn)化化為領(lǐng)域域模型,所所以產(chǎn)生生了DTTO映射射層(DDTOMMappper)。另外業(yè)務(wù)層層還包括括核心中中間件技技術(shù),包包括第三三方組件件,以及及工作流流引擎等等等。業(yè)務(wù)層需要要考慮到到一些與與數(shù)據(jù)訪訪問層交交互的設(shè)設(shè)計模式式,模式式中包括括事物腳腳本模式式、表模模塊模式式、活動動記錄模模式、領(lǐng)領(lǐng)域模型型模式。事物腳本模模式是通通過方法法來執(zhí)行行業(yè)務(wù)

9、流流程,它它是一個個過程式式模型,事事物腳本本的每個個方法都都有一個個特定的的事物腳腳本,它它側(cè)重于于業(yè)務(wù)上上一系列列流程上上的順序序操作,它它實現(xiàn)起起來很簡簡單,但但是它有有個致命命的缺點點就是它它會造成成很多重重復(fù)的代代碼。表模塊模式式比起事事物腳本本模式,具具有一定定的結(jié)構(gòu)構(gòu),它的的思想也也很簡單單,每個個數(shù)據(jù)表表都定義義一個業(yè)業(yè)務(wù)組件件(實體體類,實實體操作作類),在在.NEET中更更多的使使用DaataSSet作作為表模模型的數(shù)數(shù)據(jù)交互互。但是是它也有有一個缺缺點就是是它是從從數(shù)據(jù)庫庫驅(qū)動它它不適合合于大量量的數(shù)據(jù)據(jù)表以及及數(shù)據(jù)表表之間的的復(fù)雜關(guān)關(guān)系?;顒佑涗浤DJ街械牡膶ο笾兄?,可

10、以以包含數(shù)數(shù)據(jù)和方方法。它它接近于于數(shù)據(jù)表表的結(jié)構(gòu)構(gòu),它的的對象中中執(zhí)行方方法中可可以包含含CRUUD操作作,驗證證算法,以以及其他他的計算算功能。一一般來說說,領(lǐng)域域模型不不是太復(fù)復(fù)雜,活活動記錄錄模式是是個好選選擇。當(dāng)當(dāng)然他也也存在問問題,同同樣地,它它對于復(fù)復(fù)雜的業(yè)業(yè)務(wù)上,維維護的成成本也很很高,并并且如果果需求變變更導(dǎo)致致數(shù)據(jù)庫庫修改,就就需要調(diào)調(diào)整記錄錄對象模模型中的的相關(guān)代代碼。經(jīng)典應(yīng)用:LINNQ-TTO-SSQL以以及Caastlle AActiiveRRecoord。領(lǐng)域模型模模式是從從領(lǐng)域驅(qū)驅(qū)動設(shè)計計中衍生生來的,它它是以業(yè)業(yè)務(wù)為核核心的設(shè)設(shè)計模式式。它對對于復(fù)雜雜的業(yè)務(wù)務(wù)

11、邏輯,相相當(dāng)適用用。前三三種方式式使用的的是以數(shù)數(shù)據(jù)驅(qū)動動方式,數(shù)數(shù)據(jù)驅(qū)動動方式特特點簡單單,但是是當(dāng)系統(tǒng)統(tǒng)到了一一定的規(guī)規(guī)模后,就就會到難難以維護護的程度度。數(shù)據(jù)訪問層層的目的的很明確確,主要要作為提提供數(shù)據(jù)據(jù)持久化化的功能能,包括括數(shù)據(jù)的的讀取和和寫入,另另外還必必須包括括事務(wù)處處理,并并發(fā)控制制等等。操作數(shù)據(jù)庫庫的方法法可以有有兩種方方式,OORM方方式,AADO.NETT方式。ORM可以以采用一一些第三三方的OORM框框架來實實現(xiàn),AADO.NETT采用AASP.NETT自帶的的數(shù)據(jù)庫庫操作來來實現(xiàn)。不同的數(shù)據(jù)據(jù)庫具有有不同的的持久化化實現(xiàn),因因此這里里添加一一個存儲儲倉庫接接口層,來來適應(yīng)不不同的數(shù)數(shù)據(jù)庫實實現(xiàn),這這里你可可以使用用IOCC依賴注注入方式式進行數(shù)數(shù)據(jù)庫選選型,可可以利用用Uniity、SSpriing.NETT、Caastlle的IIOC容容器等等等。最后各個層層中都可可以依賴賴于公共共基礎(chǔ)設(shè)設(shè)施層。公共基礎(chǔ)設(shè)設(shè)施層可可以包括括Commmonn通用模模塊,LLogggingg日志模模塊,EExceeptiion異異常模塊塊,Coonfiigurratiion配配置模塊塊,DII依賴注注入模塊塊,單元元測試模模塊以及及第三方方組件(例如NNHibbernnatee、Spprinnt.NNET、C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論