前言:對於乙個專案的實現,往往都是,產品需求分析,產品設計,ui
設計,資料庫設計,後台編碼,前端頁面,各種測試,發布產品;
這個產品是我個人利用閒暇時間做著玩,包括**,以及後台管理系統;額外說一句,前端頁面是在網上下的模板,個人對前端不算精通。從產品分析到設計,以及資料庫建立還有框架的搭建,我只花了2
天時間,當然,這是個小**,表的設計沒有很多只有
4-5張;
廢話不多說了!
整個產品架構採用6
層架構,主要目的是減少每層之間的耦合度以及依賴性,方便以後**的復用和變動
圖中每個箭頭的指向代表引用
解釋下這6層的各自作用以及實現的功能:
model層:這裡沒什麼好講的,主要是利用entityframework框架和codingfirst直接生成的各個類以及
context,
但還得自己加乙個類,作為之後呼叫
context
入口時的唯一性,也就是再寫乙個單例模式的類
idal層:是對
dal層的抽象,在這裡我們定義了每個
dal層的行為規範,這裡我們定義了四個,增刪改查和分頁查詢,四個行為規範;為了體現**質量,盡量避免寫重複得**,我又把這四個行為放到乙個
ibasedao
,而具體的每個
idal
只需繼承即可,如圖:
dal層:資料訪問層,對於每張表都有的增刪改查的功能,抽出來乙個泛型
basedao
在此類中實現上述
ibasedao
定義的幾個行為,而具體的每個
dao類只需要繼承
ibasedao,
和其對應
idal
介面類
factory層:是
bll與
dal層進行互動的乙個節點,本層採用依據傳過來的
idal
介面,通過讀取
dal程式集,依據
idao
型別是不是其父類這個特性,找到
dao,並返回給
bll層;對於直接在
bll層中建立
dao相比,耦合度大大的降低依賴性也不是那麼重要,對於在後面的維護和復用是不言而喻的;**下圖:
和bllfactory,
其作用和上述的
idal
和factory
層大相徑庭,作用也是減少
bll和
ui層的耦合度和依賴,在原來的三層中,
bll是直接
new dal
物件調其方法,但在本專案中,是調取
factory
層的createdao
方法,而且不需要引用
dal層,只需引用
idal,
在傳過去的型別中我們也只需要把相應的
dal的介面
idal
型別傳過去,從而對
dal層的依賴減少,**如下圖:
ui層:採用
mvc框架搭建,對於資料前後臺互動式採用強型別檢視,一般是把需要的資料封裝到
model
中然後再前端操作;
後言:本來不想發這篇部落格的,感覺大家都很懂,沒必要,但我相信一定還有覺得這是一篇有用的部落格的朋友,其實最開心的事,莫過於能幫助到你!
基於工廠模式的三層架構
在專案開發時,有時候可能會增加或修改新的資料庫,比如,剛開始我們專案用sql server 資料庫,但後來需要用oracle 資料庫,或者說在某些情況下需要用oracle 來代替sql server 資料庫,甚至兩種情況會同時存在,但資料庫訪問方面 oracle 和sql server 是不同的,它...
三層架構和MVC之間的區別
三層架構是乙個分層式的軟體體系架構設計,它可適用於任何乙個專案。mvc是乙個設計模式,它是根據專案的具體需求來決定是否適用於該專案。那麼架構跟設計模式有什麼區別呢?我們從接手乙個專案開始,首先,我們需要進行架構設計,一般我們採用的就是分層式的架構設計,即我們的三層架構。然後,在確定了架構以後,我們再...
三層架構的基本例子
具體的概念就不說了。主要是讓理解了三層架構的當做參考 一 mdl namespace mdl set public string product name set endregion 二 dal 主要分為 獲取 主要用來取值 列表 主要用來查詢 修改和增加以及刪除操作 用到的命名空間有 using ...