在分解複雜的軟體系統時,軟體設計者使用最多的技術之一就是分層,在計算機本身的架構中也可以看到。
存cpu指令集和裝置驅動程式,在到內部晶元和各個邏輯閘電路。網路中,ftp層架構在tcp之上,tcp架構
在ip之上,ip架構又在乙太網之上。
在這種組織方式下;
上層使用了下層定義的各種服務,而下層對上層一無所知。另外,每一層對自己的上層隱藏其下層的細節。
系統分層的好處
1,無需過多了解其他層次的基礎上,就可以將某一層作為乙個有機的整體來理解。
2,可以替換某次的具體實現,只要前後提供的服務相同即可。
3,可以將層次間的耦合度降到最低
4,分層有利於標準化工作,(比如tcp)
5,一旦構建好某一層,就可以用他為很多上層服務提供支援。
系統分層的缺點
1,層次不能封裝所有東西,有時他會為我們帶來聯級修改。
2,過多的層次會影響效能。
三個基本的層次
表現層:提供服務,顯示資訊。
領域層:邏輯,系統中真正的核心。
資料來源層:與資料庫,訊息系統,事物管理及其他軟體包通訊。
表現層的主要職責就是向使用者顯示資訊並把從使用者那裡獲取的資訊解釋成領域層或資料來源層上的各種動作。
資料來源層就是資料庫,主要職責是儲存持久資料。
領域邏輯,也成業務邏輯。根據輸入資料或者已有資料進行計算,對從表現層輸入的資料進行驗證,以及根據
從表現層接收的命令來確定應該排程哪些資料來源邏輯。
到目前為止,我們一直都在討論使用者,假如是乙個很時髦的web service或者乙個古老的批處理程式呢?這樣,很顯然
表現層就有可能與資料來源層出現某些相似之處,因為他們都是系統與外界的介面。
因此,為別人提供服務的介面與使用別人服務的介面存在較大的差異。需要明確區分。
表現層是系統對外提供服務的外部介面。不管外界是複雜的人類還是乙個簡單的遠端程式。
資料來源層是系統使用外部服務的介面。
一般情況下,我們盡量使用三層架構,
一旦在複雜點,可以將三層分解到不同的子層。
伴隨著分離,還有一條關於依賴性的原則,領域層和資料來源層絕對不要依賴於表現層。也就是說,在領域層和資料來源層的**中,
絕不要出現呼叫表現層的**。
網路程式設計 02 分層模型
1.物理層 主要定義物理裝置標準,如網線的介面型別 光纖的介面型別 各種傳輸介質的傳輸速率等。它的主要作用是傳輸位元流 就是由1 0轉化為電流強弱來進行傳輸,到達目的地後再轉化為1 0,也就是我們常說的數模轉換與模數轉換 這一層的資料叫做位元。2.資料鏈路層 定義了如何讓格式化資料以幀為單位進行傳輸...
驅動雜記2 分層驅動,IRP ,I O堆疊初步印象
分層驅動是指兩個或者兩個以上的驅動程式,他們分別建立裝置物件,並且形成乙個由高到低的 裝置物件棧。irp請求一般會被傳送到裝置棧的最頂層裝置物件,頂層裝置物件可以選擇直接結束irp 請求,也可以選擇將irp請求向下層裝置 如果是向下層裝置 當irp請求結束時,irp會順著 裝置棧的反方向原路返回。當...
5 3 分層確定性錢包
分層確定性錢包 hierarchical deterministic wallet,hd錢包 是由乙個單獨的起點 稱為seed,即種子 衍生的位址和金鑰的整合系統。確定性表明對於相同的seed生成相同的位址和金鑰,分層表明位址和金鑰以相同順序生成。它使備份和儲存多個賬戶變得容易,因為使用者只需要儲存...