三層轉七層總結

    三層到七層的轉化其實就是加了兩個設計模式,三層是最經典的U層,B層,D層。七層呢,是在U層和B層之間加入外觀模式,更好的接觸U層和B層的耦合;在B層和D層之間加入了抽象工廠和反射,更方便更換數據庫和找到接口,解B層和D層的耦合。數據庫

   下面是七層的包圖。設計模式


1、每一層的做用:架構

U層:顯示界面給用戶,接收用戶輸入的信息,顯示系統返回給用戶的信息。spa


Facade:負責U層和B層之間的信息傳遞,一提起外觀模式應該會想到設計模式中它表明的一個高層接口。用戶只要與這個高層接口打交道就能夠達到統一處理子系統的目的。這裏引入的外觀模式就是爲了讓B層在不用瞭解U層的狀況下經過這個高層接口(Facade)統一處理U層的信息。
設計


B層:負責訪問D層,可是B層並非直接訪問D層的,B層是經過訪問Factory而後經過反射間接的訪問D層,並且B層做爲業務邏輯層處在系統的核心位置,承擔着全部的邏輯判斷,因此程序的每一個功能在B層都對應一個類。
xml


Factory:工廠來建立接口,返回接口。以前三層的時候以爲B層做爲橋樑連接U層和B層,如今學到了七層,發現能夠進一步解耦和,這即是Factory的功勞。
對象


Interface:接口是一種方法和能力,接口是對行爲的抽象,咱們以前在對比抽象類的時候常常會提到這兩句話,這裏的接口層主要是將訪問數據庫的方法進行抽象,是調用數據訪問層方法的接口。
blog


DAL:數據庫訪問層,D層是負責和數據庫直接交互的,也就是咱們常常用到的增刪改查。
接口


Entity:實體層,存放實體類,實體層是整個架構的血液,負責傳遞參數,遊走在各層之間,方便各層的交流。
it


2、B層,工廠層,接口層,接口層關係:

這塊的關係搞了很久才明白,分享給你們我是怎麼理解的,前面是官方解釋,後面是我舉的例子。

B層:調工廠和接口---  領導派發一項任務;

工廠層:建立接口對象-- 找到任務的實施方案,利用找到那個提供此方法的接口;

接口層:提供接口方法-- 提供任務實施方案; 

D層:實現接口-- 幹活,具體執行方案


3、順帶着研究了一下包之間的三種關係:帶箭頭的虛線

   訪問:access  源包要用到目標包中的元素

   導入:import 目標包的內容將被導入到源包中

   合併:將目標包中的內容合併到源包中去

   上述三種關係都是在目標包中public元素進行的,對private元素無效 

access和import區別:

當源包被導入另外一個包Z中時,access關係中,Z不能夠訪問目標包,import可訪問目標包。