10 種常見的軟件架構模式

作者:Go 語言由淺入深
鏈接:https://www.jianshu.com/p/18944235727a

你是否想知道企業大規模系統是如何設計的? 在軟件開發開始之前,我們必須選擇一個合適的架構,能提供所需的功能和質量特性。因此,在將架構應用到我們的設計之前,我們應該瞭解各種不同架構的特點。

什麼是架構模式?

根據維基百科:
架構模式是在軟件架構上針對特定上下文件解決常見問題的通用、可複用的解決方案。架構模式與軟件設計模式相似,但範圍更廣。
在本文中,我將簡要解釋以下 10 種常見的體架構模式及其用法和優缺點。
1、分層模式
2、客戶服務器模式(CS)
3、主從模式
4、管道過濾器模式
5、代理模式
6、P2P 模式
7、事件總線模式
8、MVC 模式
9、黑板模式
10、解釋器模式

1、分層模式

此模式可用於構造可分解爲子任務組的程序,每個子任務組處於特定的抽象級別。每一層都爲下一層提供服務。
信息系統中常見的四層模式如下:

用途

2、客戶端服務器模式

這個模式由兩部分組成; 一個服務器和多個客戶端。服務器組件將爲多個客戶端組件提供服務。客戶端向服務器請求服務,服務器向這些客戶端提供相關服務。此外,服務器繼續偵聽客戶機請求。

用途

在線應用程序,如電子郵件,文檔共享和銀行應用。

image

3、主從模式

這個模式由兩部分組成;master 和 slaves。master 組件將工作分配給相同的 slave 組件,並根據 slave 組件返回的結果計算最終結果。

用途

4、管道過濾器模式

此模式可用於創建流數據處理系統。每個處理步驟都包含在一個過濾器組件中。要處理的數據通過管道傳遞。這些管道可用於緩衝或同步目的。

用途

5、代理模式

此模式結合解耦組件構造分佈式系統。這些組件可以通過遠程服務調用,相互交互。代理組件負責協調組件之間的通信。
服務器將其功能 (服務和特徵) 發佈到代理。客戶端向代理請求服務,然後代理根據註冊中心將客戶端請求重定向到合適的服務。

用途

消息代理軟件,如 Apache ActiveMQ、Apache Kafka、RabbitMQ、JBoss Messaging。

6、P2P 模式

在此模式中,單個組件稱爲對等組件 peer。對等組件既可以作爲客戶端向其他對等組建請求服務,也可以作爲服務器向其他對等組件提供服務。對等組建可以充當客戶端或服務器,也可以同時充當兩者,它可以隨時間動態地更改其角色。

用途

7、事件總線模式

該模式主要處理事件,有 4 個主要組件; 事件源、事件監聽器、通道和事件總線。事件源將消息發佈到事件總線上的特定通道。偵聽器訂閱特定的通道。當消息發佈到它們訂閱過的通道時,偵聽器會得到通知。

用途

8、MVC 模式(model-view-controller)

這種模式,將交互式應用程序分爲 3 個部分:
1、模型 - 包含核心功能和數據
2、將信息顯示給用戶 (可以定義多個視圖)
3、處理來自用戶的輸入
這樣做是爲了將信息的內部表示與信息呈現給用戶和從用戶接受信息的方式分離開來。它解耦了組件,並允許高效的代碼重用。

用途

大部分編程語言都使用的 web 開發架構

Web 框架,如 Django 和 Rails。

9、黑板模式

這種模式在沒有確定性解決策略的問題方面很有用。黑板模式由 3 個主要部分組成。

用途

10、解釋器模式

此模式用於設計組件,該組件用於解釋專用語言編寫的程序。它主要規定了如何對程序行求值,這些程序被稱爲用特定語言編寫的句子或表達式。其基本思想是爲語言的每個符號都建立一個類。

用途

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/1RWk-pP8MZHl2d7Vh646Jw