關于架構分層?

我們常見的分層架構,

有三層架構的:展現層、業務層、數據層。
也有四層架構的:展現層、業務層、網絡層、本地數據層。

這里說三層、四層,跟TCP/IP所謂的五層或者七層不是同一種概念。再具體說就是:你這個架構在邏輯上是幾層那就幾層,具體每一層叫什么,做什么,沒有特定的規范。

這主要是針對模塊分類而言的。

也有說MVC架構,MVVM架構的,

這種層次劃分,主要是針對數據流動的方向而言的。

在實際情況中,針對數據流動方向做的設計和針對模塊分類做的設計是會放在一起的,也就是說,一個MVC架構可以是四層:展現層、業務層、網絡層、本地數據層。

那么,為什么我要說這個?

大概在五六年前,業界很流行三層架構這個術語。然后各種文檔資料漫天的三層架構,并且喜歡把它與MVC放在一起說,MVC三層架構/三層架構MVC,以至于很多人就會認為三層架構就是MVC,MVC就是三層架構。其實不是的。

三層架構里面其實沒有Controller的概念,
而且三層架構描述的側重點是模塊之間的邏輯關系。
MVC有Controller的概念,它描述的側重點在于數據流動方向。

好,為什么流行起來的是三層架構,而不是四層架構或五層架構?

因為所有的模塊角色只會有三種:數據管理者、數據加工者、數據展示者
,意思也就是,籠統說來,軟件只會有三層,每一層扮演一個角色。其他的第四層第五層,一般都是這三層里面的其中之一分出來的,最后都能歸納進這三層的某一層中去,所以用三層架構來描述就比較普遍。

那么我們怎么做分層?

應該如何做分層,不是在做架構的時候一開始就考慮的問題。雖然我們要按照自頂向下的設計方式來設計架構,但是一般情況下不適合直接從三層開始。一般都是先確定所有要解決的問題,先確定都有哪些模塊,然后再基于這些模塊再往下細化設計。然后再把這些列出來的問題和模塊做好分類。分類之后不出意外大多數都是三層。如果發現某一層特別龐大,那就可以再拆開來變成四層,變成五層。

轉載:http://casatwy.com/iosying-yong-jia-gou-tan-kai-pian.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容