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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

10 大常用软件架构模式简介

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

編譯:伯樂在線/HuihuangZhang

http://blog.jobbole.com/114685/

大型的企業級系統是如何設計的呢?想必大家都曾經有過這樣的疑惑。大型軟件開發前,我們必須選擇一種合適的架構,它既要提供我們想要的功能,質量也要過關。因此,在應用不同的架構之前,我們有必要熟悉一下這些架構。

什么是架構模式?

根據維基百科,

針對軟件架構中給定上下文的常見問題,架構模式是一種通用的、可復用的解決方案。它與軟件設計模式相似,但范圍更廣。

在這篇文章中,我將簡要地說明一下10種常用的架構模式,以及它們的用法和利弊。

  • 分層模式

  • 客戶端 – 服務端模式(cs模式)

  • 主從模式

  • 管道過濾器模式

  • 代理模式

  • 點對點模式

  • 事件總線模式

  • 模型-視圖-控制器模式(MVC模式)

  • 黑板模式

  • 解釋器模式

  • 1. 分層模式

    這種模式可用于構建能分解成多組子任務的程序,每個子任務處在特定的抽象級別中。每一層為更高一層提供服務。

    以下是最常見的通用信息系統中的4個層次。

    • 表示層(亦稱為 UI層)

    • 應用層(亦稱為 服務層)

    • 業務邏輯層(亦稱為 領域層)

    • 數據訪問層(亦稱為 持久層)

    用法

    • 通用桌面應用

    • 電子商務web應用

    2. 客戶端-服務端模式

    該模式包含一個服務端和多個客戶端。服務端組件給多個客戶端組件提供服務。客戶端向服務端請求服務,服務端提供相關的服務。此外,服務端會持續監聽客戶端的請求。

    用法

    • 在線應用,例如電子郵件、文件共享和存儲。

    3. 主從模式

    該模式包含兩部分;主和從。主組件給相同的從屬組件分配工作,并根據從 從屬組件 中返回的結果計算最終結果.

    用法

    • 主服務器是權威來源,從屬數據庫與其進行同步。

    • 在計算機系統中,外圍設備連接到總線中(主驅動和從屬驅動)。

    4. 管道過濾模式

    該模式可用于構建生成和處理數據流的系統。每個處理步驟包含在一個過濾組件中。待處理的數據通過管道傳遞。這些管道可用于數據緩存或同步。

    用法

    • 編譯器。連續的過濾器執行詞法分析,解析,語意分析,和代碼生成。

    • 生物信息學中的工作流。

    5. 代理模式

    該模式用于構建伴有解耦組件的分布式系統。這些組件通過遠程服務調用來和彼此互動。代理組件負責協調組件之間的通信。

    服務器將其功能(服務和特性)發布到代理。客戶端從代理請求服務,代理根據注冊表把客戶端重定向到合適的服務。

    用法

    • 消息代理服務,例如Apache ActiveMQ,?Apache Kafka,RabbitMQ和JBoss Messaging。

    6. 點對點模式

    在該模式中,相同的組件被稱為對等組件。對等體既可以作為客戶端,請求其他對等體的服務,也可以作為服務端,為其他對等體提供服務。一個對等體可以作為客戶端、或者服務端、或者兼任兩者,它能隨著時間動態變更自己的角色。

    用法

    • 文件共享網絡,例如Gnutella?和?G2)

    • 多媒體協議,例如P2PTV?和?PDTP。

    7. 事件總線模式

    該模式主要處理事件,并且有4個主要組件:事件源,事件監聽者,事件通道和事件總線。事件源發布消息到事件總線上的特定通道。監聽者訂閱特定通道。如果監聽者訂閱的通道有消息發布,那么監聽者就會得到通知。

    用法

    • 安卓開發

    • 通知服務

    8. 模型-視圖-控制器模式(MVC模式)

    該模式亦被稱為MVC模式,它將交互式應用分成3個部分,

  • 模型 – 包含核心功能和數據

  • 視圖 – 給用戶展示信息(可能不止一個視圖)

  • 控制器 – 處理用戶的輸入 這樣做的目的是將?信息的內部表示?和?信息呈現給用戶并且從用戶獲取的方式?分離開。這樣能解耦組件并且有效重用代碼。

  • 用法

    • 主要編程語言的萬維網應用的體系結構。

    • web框架,例如Django和Rails。

    ?

    9. 黑板模式

    該模式可用于沒有已知確定性解決方案策略的問題。黑板模式由3個主要組件組成。

    • 黑板 – 一塊結構化的全局內存,包含解決方案空間的對象。

    • 知識源 – 具有各自代表性的專業模塊。

    • 控制組件 – 選擇,配置和執行模塊。?所有組件都可以訪問黑板。組件可能會生產添加進黑板的新數據對象。組件在黑板上尋找特定類型的數據,并且可能利用已有的知識源,通過模式匹配的方式來尋找數據。

    用法

    • 語音識別

    • 車輛識別和追蹤

    • 蛋白質結構識別

    • 海納信號解析

    ?

    10. 解釋器模式

    該模式用于設計 用來解釋專用語言寫成的程序 的組件。它主要指明如何評估程序的行,即用特定語言編寫的語句或表達式。基本想法是為語言的每個符號設置一個類。

    用法

    • 數據庫查詢語言,例如SQL。

    • 計算機語言用來描述通訊協議。

    架構模式的優劣比較

    下面的圖表總結了各種架構模式的優劣。

    總結

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

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