博客 / 詳情

返回

常見的常見的體系架構模式模式

之前查了一些設計模式,突然發現了架構設計模式,所以本文介紹下幾種常見的架構模式及其簡要介紹、用法和優缺點:

1.分層模式(Layered Architecture)

  • 用法:將系統劃分為多個邏輯層次,每一層提供服務給上一層,並使用下一層的服務。典型的例子包括表示層、業務邏輯層和數據訪問層。
  • 優點:

    • 易於分工協作,降低耦合度。
    • 每一層可獨立開發、測試和維護。
    • 提供清晰的責任分離和模塊化結構。
  • 缺點:

    • 層與層之間的通信可能導致性能開銷。
    • 可能產生過多的抽象層級,導致複雜性增加。
    • 不適用於需要高度靈活性或快速迭代響應的場景。

2.客户端-服務器模式(Client-Server Pattern)

  • 用法:在分佈式系統中,客户端發起請求,服務器處理請求並返回結果。例如Web應用、數據庫查詢等。
  • 優點:

    • 客户端和服務器職責明確,易於擴展和升級。
    • 支持多用户同時訪問。
  • 缺點:

    • 單點故障問題(服務器端),需要高可用解決方案。
    • 網絡延遲可能影響性能。
    • 難以實現複雜的交互邏輯和狀態共享。

3.主從設備模式(Master-Slave Pattern)

  • 用法:用於數據庫複製、分佈式計算等場景,一個主節點負責管理整個系統,多個從節點執行任務或者存儲數據的副本。
  • 優點:

    • 能夠實現負載均衡和容錯。
    • 通過讀寫分離提高性能。
  • 缺點:

    • 主節點失效可能導致整個系統的中斷。
    • 數據同步可能存在延時問題。
    • 從節點數量增加會加大管理和協調複雜度。

4.管道-過濾器模式(Pipeline-Filter Pattern)

  • 用法:數據流經一系列處理單元(過濾器),每個過濾器對數據進行特定的處理後再傳遞給下一個。在多媒體處理、日誌處理等領域廣泛應用。
  • 優點:

    • 易於添加、移除或修改單個處理步驟。
    • 並行處理能力較強,支持流水線併發執行。
  • 缺點:

    • 如果過濾器之間有緊密依賴,可能會限制其重用性。
    • 處理過程中錯誤的傳播和控制較為複雜。

5.代理模式(Proxy Pattern)

  • 用法:為其他對象提供一種代理以控制對該對象的訪問,比如遠程代理、虛擬代理、保護代理等。
  • 優點:

    • 通過間接訪問隱藏真實對象的複雜性。
    • 增強安全性,可以添加額外的權限驗證和監控功能。
    • 支持延遲加載和優化資源消耗。
  • 缺點:

    • 添加了額外的間接訪問開銷。
    • 設計不當可能增加整體設計的複雜性。

6.點對點模式(Peer-to-Peer Pattern)

  • 用法:網絡中的所有節點地位平等,可以直接與其他節點通信和交換信息,如文件共享網絡、區塊鏈技術等。
  • 優點:

    • 高度分散化,無中心節點故容錯能力強。
    • 擴展性好,隨着節點增多,整體性能可能提升。
  • 缺點:

    • 控制和管理困難,容易出現一致性問題。
    • 對網絡安全和隱私要求較高。

7.事件總線模式(Event Bus Pattern)

  • 用法:作為一種消息傳遞機制,允許系統各組件發佈和訂閲事件,從而解耦組件間的直接聯繫。
  • 優點:

    • 提高系統的鬆耦合程度。
    • 支持異步處理和分佈式系統集成。
  • 缺點:

    • 系統行為難以跟蹤和調試。
    • 如果不正確地管理事件,可能導致內存泄漏或消息積壓。

8.模型-視圖-控制器模式(Model-View-Controller Pattern, MVC)

  • 用法:在軟件工程中用於構建用户界面,將數據模型、用户界面展示以及處理用户輸入的邏輯分離成三個相互協作的部分。
  • 優點:

    • 提高代碼可複用性和可維護性。
    • 易於進行前後端分離開發。
  • 缺點:

    • 當項目變得龐大時,MVC邊界可能模糊不清。
    • 過於嚴格的分離可能導致額外的通信開銷。

9.黑板模式(Blackboard Pattern)

  • 用法:主要用於解決複雜、不確定性問題,多個知識源觀察並更新全局黑板上的數據,尋找解決問題的最佳方案。
  • 優點:

    • 非確定性問題求解的有效方式。
    • 各個組件相對獨立,易於擴展和重構。
  • 缺點:

    • 控制和協調各個組件較複雜。
    • 適用場景有限,非通用架構模式。

10.解釋器模式(Interpreter Pattern)

  • 注意:解釋器模式通常屬於軟件設計模式而非體系架構模式,它主要用於設計語言解釋器或表達式解析器。
  • 用法:定義語法或表達式的文法,並創建一個解釋器來解釋這些語法結構。
  • 優點:

    • 便於擴展新的語法規則。
    • 把複雜的問題轉換為簡單的解釋規則集合。
  • 缺點:

    • 僅在特定情況下有效,如解析簡單語言或表達式時。
    • 對於複雜的文法,維護和執行效率較低。
      其他的待再詳細瞭解:
  • 分層模式
  • 客户端-服務器模式
  • 主從模式
  • 管道-過濾器模式
  • 代理模式
  • 對等模式
  • 事件總線模式
  • 模型-視圖-控制器模式
  • 黑板模式
  • 解釋器模式
  • 事件驅動架構
  • 微內核架構
  • 微服務架構
  • 基於空間的架構
  • 面向對象風格
  • 倉庫風格
  • 基於規則的系統風格
  • 黑板系統風格
  • C2風格
  • 正交架構風格
  • 異構風格
  • 管道過濾器風格
    在《軟件架構理論與實踐》這本書中對上述架構模式有更詳細的描述,大家有空可以再看下。
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.