回头再看N层架构(图解)
不知不覺來博客園已經快兩半了,時間過的真快。
這次的目標是再回顧一下傳統的N層架構并且分析一下在DDD中的N層架構。
??? 一、先來看一看傳統的N層架構
N-層架構的出現,主要是由于觀注點的分離而產生,這三層中BL層的職責一般比較難理清,具體請看下圖.
接下來我們關注一下層間交互(分離出角色與職責以后,如何交互將成為架構或模式的主要特征)
然而在實際項目中我們也會出現這樣的狀況
這里存在一個反模式
?
二、傳統的N層架構與DDD中N層架構的關系
?
三、分層架構的一個重要原則是:每層只能與位于其下方的層發生耦合,所以可以分為嚴格分層架構,如上面的圖中都是。另一種是松散分層架構如下圖
?
四、采用依賴倒置的N層架構
依賴倒置的兩個原則:
1 高層模塊不應該依賴于低層模塊,丙都都應該依賴于抽象。
2 抽象不應該依賴于細節,細節應該依賴于抽象。
舉個例子:用戶接口層中定義了它需要訪問的基礎設施層的接口,而基礎設施層只要實現這個接口就好。
對于用戶接口層來說它依賴的是 它定義的基礎設施層的接口。而基礎設施層也依賴于這個接口。
由于使用依賴倒以后層間相互依賴于接口。實際上高層低層并不明顯,相當于把整個架構都推平了。這也會后面的六邊形架構
的引入奠定了基礎。但這里需要注意的一點就是在依賴倒置這幅圖中的用戶接口的交互行為,它已經被限定了只能和應用層交互。
再來看看六邊形架構
這是具有一種對稱性特征的架構風格
對稱性特征?=> 不同的客戶將通過"平等"的方式與系統交互。
這里主要講一下六邊形架構的內部,其實是依賴倒置后有一個交互限制的松散藕合的N層架構。
?
簡單理了一下N層架構,并順代說了下DDD中的實現方式,完全是自己的理解,有對的肯定也有錯的,希望大家多提寶貴意見。
?
轉載于:https://www.cnblogs.com/dreamingsnail/p/4510023.html
總結
以上是生活随笔為你收集整理的回头再看N层架构(图解)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux中环境变量文件profile、
- 下一篇: Filter Effects - 使用