架構(gòu)設(shè)計的分層架構(gòu)
我們在架構(gòu)設(shè)計中,經(jīng)常會聽到分層架構(gòu),那么到底什么是分層架構(gòu)呢?
首先我們得理解層的概念,層就是軟件的邏輯單元每一層解決一個特定的問。比如HTTP的7層架構(gòu)。還有我們經(jīng)常聽說的spring mvc架構(gòu)。這其中都是分層的概念。還有我們在開發(fā)過程中接觸的controller service do 我說的這些都是分層架構(gòu)中的某一層。或許說到這里,你對層的概念會有一絲深刻的理解。計算機(jī)領(lǐng)域有一個不成文的規(guī)定。就是解決不了的問題就會加一層。就像jvm虛擬機(jī)加了一層虛擬層,就解決了硬件層面的不同。所以分層架構(gòu)在我們的架構(gòu)設(shè)計中有著很重要的地位。良好的運(yùn)用分層架構(gòu)可以使得架構(gòu)很清晰。而且代碼也可以良好的擴(kuò)展。
我們的系統(tǒng)架構(gòu)一般都是按照職責(zé)劃分和組織。劃分完職責(zé)之后,可以按照分層架構(gòu)去設(shè)計和實(shí)現(xiàn)。那么分層架構(gòu)在架構(gòu)設(shè)計中有哪些優(yōu)點(diǎn)和缺點(diǎn)呢?
優(yōu)點(diǎn)如下,由于每一層只解決一個問題,所以整個架構(gòu)具有良好的高內(nèi)聚,低耦合,并且在每一層有良好的擴(kuò)展性。它的可維護(hù)性和可測試性也很高,因?yàn)槟憧梢灾会槍γ恳粚舆M(jìn)行維護(hù)和測試,不用擔(dān)心其他層。層與層之間通過接口進(jìn)行交互。因?yàn)橐蕾嚱涌谙喈?dāng)于依賴抽象而不依賴實(shí)現(xiàn),所以整體的改動量是很小的。
我們說完了優(yōu)點(diǎn),我們再來說一下缺點(diǎn)。分層架構(gòu)一個明顯的缺點(diǎn)就是隨著層數(shù)的增加,會增加通訊時長。使得整體架構(gòu)的性能不是特別高。
我們說了什么是分層架構(gòu),并且闡述了架構(gòu)的優(yōu)缺點(diǎn)那么我們?nèi)绾螌?shí)現(xiàn)一個分層架構(gòu)呢?
一般我們在做系統(tǒng)設(shè)計的時候,都是有?
從web controller entity ,從外到內(nèi),越往里走越抽象。系統(tǒng)的內(nèi)部往往是一些規(guī)則的體現(xiàn)。所以每一層只需要關(guān)注自己的事情就行。就像web層只關(guān)注用戶的交互,controller層只關(guān)注請求的轉(zhuǎn)發(fā)。底層是一些實(shí)現(xiàn)。
好了今天的分享就到這里。明天我會繼續(xù)分享架構(gòu)方面的知識。明天我將給大家分享的是事件驅(qū)動架構(gòu)。大家盡情期待吧!
本文使用 文章同步助手 同步