關于分層架構

身邊的朋友喜歡分層架構,看到的一張張圖都是分層的。分層從哪來的?

一個比較大的可能是受TCP IP 協議分層形式影響。學過網絡基礎課程的都應該對七層網絡模型有印象。這個模型有點誤導,咋看上去是層次結構,上層依賴下層,這么經典的體系結構都分層了,自己做的小破應用也應該向經典看齊,結果導致這種分層泛濫。

仔細理解七層網絡模型,他描述的是協議實現軟件嗎?不是滴。這個模型說的是數據傳輸過程的層層封裝,上層的數據被下層封裝,不是協議軟件的結構。

那協議軟件的結構是什么樣的?是分模塊的,模塊間有依賴關系。有哪些模塊呢?一層一個模塊,相鄰層的模塊有依賴關系。我沒有在耍你,也不是在玩文字游戲。重點是處理上層邏輯的模塊不依賴處理下層邏輯的模塊,而是相反,下層依賴上層。沒錯,就是依賴倒置。舉個例子。傳輸層依賴網絡層嗎?是的,傳輸層依賴網絡層進行數據報文傳輸。但是,傳輸層依賴網絡層的具體實現嗎?傳輸層需要知道是IP數據報還是X.25?不需要,傳輸層只要定義網絡層的抽象接口就好了。所以說網絡層依賴傳輸層的抽象接口,下層依賴上層。

如果層層都是這樣的關系,到底分成多少層重要嗎?是否分層還重要嗎?一點都不重要,完全沒必要被層次的形式束縛。只要把職責垂直切分,形成模塊,模塊依賴另一個模塊的抽象,你就獲得靈活的結構。相反,受制于層次結構的束縛,硬生生的水平切分,你的到的永遠是支離破碎的,僵化的結構,你永遠無法說清層次間的邊界,還會時不時地在層次間到處塞小層次。

如果你的層次里出現了core,manager,domain的字樣,恭喜你,你在做水平切割的層次,好好跟小伙伴解釋什么是core,什么不是core吧~~

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,366評論 25 708
  • 13.服務器圖片改了,url沒有變,需求,服務器的圖片變了,就從服務器加載圖片,如果服務器的沒變,就從本地加載 1...
    AlanGe閱讀 1,456評論 0 1
  • 版本記錄 前言 在互聯網行業(yè)中,不管你是客戶端前端還是后臺,只要是與網絡相關,你就必須了解一些基礎知識,包括這里的...
    刀客傳奇閱讀 2,005評論 0 16
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,901評論 11 349
  • 作者介紹馮宇飛 ,現任人人車Android客戶端架構師。 本文回顧總結了人人車公司Android客戶端的架構演進歷...
    passiontim閱讀 1,655評論 0 9

友情鏈接更多精彩內容