在現有的資料庫應用系統架構中,一般分為三層或多層。通常分為ui層,邏輯層,資料庫訪問層等。不過對於不同的系統中,分層也是不同的。
那麼什麼情況下需要分層,怎樣分層才夠合理呢?首先如果乙個系統功能是單一的,內聚的,而且有一定概論的變動要求,那麼這個功能就可以作為乙個層,比如(1)資料庫訪問層(功能比較單一,而且有可能會訪問不同資料庫),(2)資料加密解密層(功能比較單一,可能會使用不同的加密、解密演算法).
層的另乙個用途就是解耦,通過新增乙個中間層,可以解耦它的上層和下層。本質上資料庫訪問層就是為了解除邏輯層和資料庫之間的耦合。
分層使系統結構更加清晰,但也會加大工作量,所以分層也要適度,筆者以前就遇到過有的分層過於薄,而且變化的需求也不大,結果,僅僅為了分層而分層,有些層僅僅是下一層的簡單包裝,這樣的分層就沒有必要了。
所以說,分層一定要視你所要設計的系統的要求來定。一些小型的簡單的系統根本沒有必要分過多的層。而對於大型的,複雜的系統,分層是相當有必要的,即使你現在看不出有什麼需求,但分了層,以後一定會享受到它的好處的。
系統架構型別劃分
一 系統架構的定義 系統是指一群有關聯的個體 物件 元件 根據某種規則和約束而構成的具有個體不能具備的功能的整體。二 架構的分類 在系統架構設計中我們會根據其展現的形式和角度不同而競相劃分,其包括 業務架構,資料架構,產品架構,應用架構,技術架構。首先我們需要了解業務,從業務邊界劃分的維度我們可以提...
MVC架構的職責劃分
模型 檢視 控制器 mvc 是一種設計框架 設計模式 mvc 的目標是將業務邏輯從使用者介面的考慮中分離。這樣,開發者就可以更容易地改變每一部分而不會影響其他。在 mvc 中,view 可能由 jsp 實現 controller 是乙個 servlet,現在一般用 struts 實現 model 則...
mvc 職能劃分 MVC架構的職責劃分原則
最近負責乙個專案,用了 但是隨著對業務邏輯理解的深入,才開始意識到問題的嚴重。我錯誤地理解了 mvc 中的 controller,想當然地根據以往的經驗,把所有的業務邏輯都放在 controller 的 action 中去實現。於是,每乙個 controller 的 都上千行,越來越臃腫。最後,我下...