日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

10 个常用的软件架构模式

發布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 10 个常用的软件架构模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

你是否曾經思考過如何設計大型的企業級系統?在決定啟動軟件開發之前,首要的是選擇恰當的架構來指引系統的功能及質量屬性設計。因此在將軟件架構應用于設計之前,必需要了解常用的架構模式。

什么是架構模式?

Wikipedia 的解釋:

在軟件架構中,架構模式是對特定環境下常見問題的通用且可重用的解決方案。架構模式與軟件設計模式很相似,但架構模式的層次更高,且外延更大。

這篇文章將簡述常見的 10 種架構模式的概念、用法以及其優缺點。
1. 分層模式(Layered pattern)
2. 客戶端/服務器模式(Client-server pattern)
3. 主/從模式(Master-slave pattern)
4. 管道/過濾器模式(Pipe-filter pattern)
5. 代理模式(Broker pattern)
6. 對等模式(Peer-to-peer pattern)
7. 事件總線模式(Event-bus pattern)
8. 模型/視圖/控制器(MVC)模式(Model-view-controller pattern)
9. 黑板模式(Blackboard pattern)
10. 解析器模式(Interpreter pattern)

1. 分層模式(Layered pattern)

分層模式用于對結構化設計的軟件進行層次拆解,每個層次為獨立的抽象,為其上層抽象提供服務。

系統通常被拆分為以下四個層次:
? 表示層(也稱為 UI 層)
? 應用層(也稱為服務層)
? 業務邏輯層(也稱為領域層)
? 數據訪問層(也稱為持久化層)

使用場景
? 通用桌面應用程序
? 電子商務 Web 應用

?? ??? ??? ?


2. 客戶端/服務器模式(Client-server pattern)

客戶端/服務器模式由兩個部分構成:一個服務器與多個客戶端。服務器組件同時為多個客戶端組件提供服務。客戶端向服務器發啟服務請求,服務器將相應服務信息回應給客戶端。此外,服務器持續監聽來自客戶端的請求。

使用場景
? 電子郵件、文件共享及銀行業務等在線應用

??


3. 主/從模式(Master-slave pattern)

主/從模式由兩個部分構成:主設備與從設備。主服務組件將作業分發給多個從設備組件,并根據這些從設備反饋的結果,計算生成最終結果。

使用場景
? 數據庫復制,主數據庫被認定為權威數據源,各從數據庫與主數據保持同步
? 在計算機系統中通過總線互連的各設備(包括主設備與從設備)


4. 管道/過濾器模式(Pipe-filter pattern)

管道/過濾器模式用于構造用于生成及處理數據流的系統。每個處理過程都封裝在過濾器(filter)組件之中,要處理的數據通過?管道(pips)?進行投遞。管道同時用于作為?過濾器(filter)?間的緩沖及同步。

使用場景
? 編譯器,一系列的過濾器用于詞法分析、語法分析、語義分析及代碼生成
? 生物信息學的工作流

5. 代理模式(Broker pattern)

代理模式用于在結構化系統中對組件解耦。系統內各組件間采用遠過程調用(remote service invocations)的方式交互。代理(Broker)組件充當組件間通訊的協調角色。

提供服務的組件將其能力(服務以及特性)發布給代理,客戶端均向代理請求服務,由代理將請求重定向到先前已發布過對應服務的組件進行處理。

使用場景
? 消息中間件軟件:Apache ActiveMQ,Apache Kafka,RabbitMQ 與 JBoss 等等

6. 對等模式(Peer-to-peer pattern)

對等模式中的組件稱之為對等體(peer),對等體既作為向其他對等體請求服務的客戶端,同時也做為響應其他對等體請求的服務端。對等體可以在運行過程中動態地改變其角色,即,既可以單獨做為客戶端或服務端運行,又可同時作為客戶端與服務端運行。

使用場景
? 網絡文件共享:Gnutella?與?G2)
? 流媒體協議:P2PTV?與?PDTP.
? 流媒體應用:?Spotify.

7. 事件總線模式(Event-bus pattern)

事件總線模式應用于事件處理,主要由四個組件構成:事件源(event source),事件偵聽者(event listener),通道(Channel)以及總線(event bus)。 事件源將消息發布到總線的特定通道,偵聽者訂閱相應的通道,事件源所發布的消息經通道通告給訂閱通道的偵聽者。

使用場景
? Android 開發
? 通告(Notification)服務

8. 模型/視圖/控制器(MVC)模式(Model-view-controller pattern)

模型/視圖/控制器模式(簡稱 MVC 模式)將交互式應用程序拆分為三個部分:
1. 模型(model)?– 包含核心功能及數據
2. 視圖(view)?– 呈現信息給用戶(通過有多個視圖)
3. 控制器(controller)?– 處理用戶的輸入操作

MVC 模式通過將內部信息表示、用戶信息呈現以及用戶操作接收分開的方式解耦組件,實現高效代碼重用。

使用場景
? 主流開發語言所構建的互聯網網頁應用架構
? Django?與?Rails?等網頁應用開發框架

9. 黑板模式(Blackboard pattern)

黑板模式適用于?無預知確定解決策略?的問題,主要由三個組件構成:
? 黑板(blackboard)?– 用于存儲解空間對象的結構化全局內存
? 知識(knowledge)源 – 能自表意的專用模塊
? 控制(control)組件 – 選擇、配置與執行的模塊

所有的組件均能訪問黑板,組件可將新生成的數據對象寫入黑板,也可以通過模式匹配從黑板中獲取知識源所生成的特定數據。

使用場景
? 語音識別
? 車輛識別和追蹤
? 蛋白質的結構鑒定
? 聲納信號解析

10. 解析器模式(Interpreter pattern)

解析器模式用于設計語言的解析程序,主要用于指定評估程序代碼行,即解析出特定語言的語句與表達式,其核心思想是為語言的每個符號定義相應的類。

使用場景
? SQL 等數據庫查詢語言
? 通訊協議描述語言

上述架構模式的對比

下表格總結了各架構模式的優缺點


?

總結

以上是生活随笔為你收集整理的10 个常用的软件架构模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。