這個是最基本的三層架構模式。
表現層充當系統的介面呈現以及ui邏輯的角色,也就是說,ui(使用者介面)屬於表現層;
因此,我們就可以把表現層分為ui使用者介面以及ui邏輯:
ui邏輯的職責是負責業務邏輯層以及ui使用者介面之間的資料互動,並且盡可能地讓ui邏輯不依賴於ui技術。
其中ui使用者介面的實現方式有很多,包括asp.net,winform,wpf,silverlight,移動web,智慧型裝置等等。
mvc模式,即模型-檢視-控制器模式,通過檢視觸發並執行某個操作,呼叫控制器,通過控制器去操作業務層,最終返回模型,在檢視中進行展示。這裡的模型可以是乙個領域模型(dm),也可以是乙個資料遷移物件(dto)。
mvp模式,即模型-檢視-展示器模式,和mvc模式有點像,不同的是mvp中檢視和模型是被完全分離出來的,檢視中定義乙個介面,而展示器通過呼叫該介面的方法以控制檢視。因此,檢視和模型是鬆散的,展示器也充當了乙個控制器的角色,同時它也不依賴於ui技術。
另外再介紹一種模式pm(preentation model),它可以說是mvp的變體,在pm中,檢視不定義介面,這裡的模型只是表示檢視狀態的類,檢視中的元素被直接繫結到模型屬性上。例如在wpf中,wpf就先天的具有資料雙向繫結機制以及事件通知屬性機制。
所以它特別適用於wpf,sliverlight等等。
為了實現服務的可重用性,需要使用服務介面,表現層通過規定的介面訪問功能。服務的實現繼承服務介面,而服務的實現專注於業務層的呼叫。
本人比較建議使用wcf作為服務,因為可以方便地通過配置達到遠端呼叫服務的目的。
服務層消除了兩個表現層和業務層之間的耦合,服務層可以實現乙個遠端介面,達到多ui技術甚至多平台上的通訊。
當然增加服務層也有缺點,假如使用wcf服務,會增加系統的呼叫開銷,進而影響效能。
我們通常也叫做業務層叫做業務邏輯層,但我認為業務邏輯層是屬於業務層的一方面,業務邏輯更專注於業務上邏輯演算法的實現。因為業務層還可以包括其他的方面。
業務層必須包括對業務實體盡心建模的物件模型,表達了客戶的所有策略和需求的業務規則,因此就產生了領域模型。
(ps:如果這裡你不使用領域模型,那麼需要採用業務規則層進行業務功能上的業務規則的驗證和控制)
領域模型包括對實體的屬性定義,方法定義以及實體與實體之間的關係。從這個角度上看,uml建模至關重要,通過對uml動態圖和靜態圖的描述,可以對映到領域模型中。
另外業務層還包括核心中介軟體技術,包括第三方元件,以及工作流引擎等等。
事物指令碼模式是通過方法來執行業務流程,它是乙個過程式模型,事物指令碼的每個方法都有乙個特定的事物指令碼,它側重於業務上一系列流程上的順序操作,它實現起來很簡單,但是它有個致命的缺點就是它會造成很多重複的**。
表模組模式比起事物指令碼模式,具有一定的結構,它的思想也很簡單,每個資料表都定義乙個業務元件(實體類,實體操作類),在.net中更多的使用 dataset作為表模型的資料互動。但是它也有乙個缺點就是它是從資料庫驅動它不適合於大量的資料表以及資料表之間的複雜關係。
活動記錄模式中的物件中,可以包含資料和方法。它接近於資料表的結構,它的物件中執行方法中可以包含crud操作,驗證演算法,以及其他的計算功能。 一般來說,領域模型不是太複雜,活動記錄模式是個好選擇。當然他也存在問題,同樣地,它對於複雜的業務上,維護的成本也很高,並且如果需求變更導致資料庫 修改,就需要調整記錄物件模型中的相關**。
經典應用:linq-to-sql以及castle activerecord。
領域模型模式是從領域驅動設計中衍生來的,它是以業務為核心的設計模式。它對於複雜的業務邏輯,相當適用。前三種方式使用的是以資料驅動方式,資料驅動方式特點簡單,但是當系統到了一定的規模後,就會到難以維護的程度。
運算元據庫的方法可以有兩種方式,orm方式,ado.net方式。
orm可以採用一些第三方的orm框架來實現,ado.net採用asp.net自帶的資料庫操作來實現。
不同的資料庫具有不同的持久化實現,因此這裡新增乙個儲存倉庫介面層,來適應不同的資料庫實現,這裡你可以使用ioc依賴注入方式進行資料庫選型,可以利用unity、spring.net、castle的ioc容器等等。
公共基礎設施層可以包括common通用模組,logging日誌模組,exception異常模組,configuration配置模組,di依 賴注入模組,單元測試模組以及第三方元件(例如nhibernate、sprint.net、castle、quartz計畫任務等等)
最終圖:
企業級網路架構
目錄 三層交換機 三層交換機使用過程 連線外網 動態路由 ospf 協議,開放最短路徑優先協議 ospf區域 區域id 骨幹區域0 ospf配置 傳輸層傳輸層的作用 傳輸層兩個重要的協議 tcp的應用 udp應用 acl訪問控制列表 acl的主要型別 acl規則 使用三層交換技術實現vlan間通訊 ...
企業級網路架構
新增vlan vlan2 vlan3 對應的介面新增相應的vlan 進入vlan虛擬介面配置ip 新增s307交換機 配置vlan,新增介面,並將4口設定為trunk 三層交換機配置ip位址思路 建立以個vlan vlan 4 進入該vlan的虛擬介面配置ip 再將對應介面加入該vlan 三層交換機...
iOS企業級架構設計
對於單獨的小型應用能處理好各部分的功能,處理好各部分分層的業務邏輯已經實屬不易。因為模組與模組之間的耦合不易拆除,隨著業務的增長,當初嚴格的劃分已經越來越不能滿足要求,模組開始變得異常膨脹,邏輯也異常的冗餘。乙個好的架構應該能解決這些棘手的問題,乙個好的架構的機制一旦被確定,就不應該輕易更改。對於乙...