基於基本三層如何降低層之間的耦合度

2021-09-24 20:47:22 字數 2065 閱讀 2129

前言:對於乙個專案的實現,往往都是,產品需求分析,產品設計,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 ...