首頁  >  文章  >  幾種常見的軟體架構是什麼?

幾種常見的軟體架構是什麼?

青灯夜游
青灯夜游原創
2020-08-28 15:24:4018656瀏覽

常見的軟體架構模式:分層架構模式、客戶端-伺服器模式、主從模式、管道-過濾器模式、代理模式、點對點模式、事件匯流排模式、模型-視圖-控制器( MVC)模式、黑板模式、解譯器模式等。

幾種常見的軟體架構是什麼?

10種常見軟體架構模式

是否想知道大型企業級系統是怎麼設計的?在軟體主體開發之前,我們必須選擇一個合適的架構來提供所需的功能和品質特徵。所以在應用於設計之前,我們應該先了解不同的架構。


什麼是架構模式

維基百科:架構模式是在在給定上下文的軟體架構中,針對常發生問題的一種通用、重複使用的解決方案。架構模式類似軟體設計模式,但是範疇較廣。

本文中,我將簡要的闡述如下10常見架構模式的應用與優缺點。

    1. 層層模式
    2. 客戶端-服務端模式
    3.主從模式
    4. 管道-濾波器模式
   5. 代理模式# 5. 6. 點對點模式
    7. 事件總線模式
    8. 模型-視圖-控制器模式
    9. 黑板模式
    10. 解釋器模式

1. 分層模式

該模式用於建立可分解為多組子任務的程序,每個子任務都在某個抽象層,每個層對上一個更高層提供服務。一般資訊系統中最常見的4層體系如下。


    表示層(也叫UI 層)
  • 應用層(也叫服務層)
  • 業務邏輯層(也叫領域層)
  • 資料存取層(也稱為持久層)
    應用情境
    一般桌面程式
  • 電子商務網頁程式


2. 用戶端伺服器模式

    此模式由兩部分構成:單一伺服器端和多個客戶端。伺服器元件對多個客戶端元件提供服務。客戶端向伺服器端請求服務,服務端提供對應服務給這些客戶端。此外,伺服器端繼續監聽客戶端請求。


應用程式場景

    線上應用,例如電子郵件、文件分享和銀行業務


3. 主從模式

#此模式由兩部分構成:主節點與多個從節點。主節點組件向多個獨立的從節點組件分派任務,並根據從節點返回結果計算最終結果。


應用程式場景

    資料庫複製,主資料庫被視為權威來源並同步到從資料庫
  • 連接到計算系統的外圍設備(主從驅動)


#4. 管道-過濾器模式

    此模式用於建構生產和處理資料流的系統。每個處理步驟封裝在一個過濾器組件中。待處理的資料會傳送到管道之中,這些管道可用於緩衝或同步。


    應用情境

    #編譯器,接連的過濾器執行詞義分析,語法分析,語意分析與程式碼產生
  • 生物資料學科的工作流程


#5. 代理模式

此模式用於建構組件解耦的分散式系統。這些元件透過遠端呼叫彼此互動。代理元件負責多個元件的通訊協調,伺服器向代理程式公開他們的能力(服務和特性);客戶端從代理程式中取得服務,然後代理重新導向客戶端到註冊服務庫中一個適當的服務。


    應用​​場景

    #訊息佇列軟體,例如Apache ActiveMQ、Apache Kafka、RabbitMQ 和JBoss Messaging


#

6. 點對點模式

    此模式中,各獨立元件都會稱為對等點。對等點既可以作為客戶端從其他對等點取得服務,也可作為服務端向其他對等點提供服務。對等點可作為客戶端、或服務端、或兩者,並且在不時間動態切換角色。

    應用場景

  • 檔案分享網絡,例如Gnutella 和G2
  • 多媒體協議,例如P2PTV 和PDTP
  • #私人媒體程序,例如Spotify


#7. 事件總線模式


#7. 事件總線模式

    此模式主要處理事件,有4個主要元件:事件來源,事件監聽器,頻道及事件匯流排。事件來源發布訊息到事件總線上的某個頻道,監聽器訂閱某個頻道,並得知在訂閱頻道中發布的消息。
  •     應用情境

#Android 發展

通知服務


##8. 模型-檢視-控制器模式

  •     此模式也稱為MVC 模式,分割互動程式為3個部分:模型——包含核心功能和數據,視圖——顯示資訊給使用者(多個視圖可定義),控制器——處理使用者輸入。它透過分割使用者資訊的內部陳述和呈現、接受方式來實現,解耦元件並允許高效的程式碼重複使用。
    應用場景


#主流程式語言的萬維網程式架構

網頁框架,例如Django 和Rails


9. 黑板模式

  •     此模式對沒有確定性方案策略的問題很有用。黑板模式由三個主要組件組成,黑板——包含解空間物件的結構化全局內存,知識源——有自擁表示的專門模組,控制組件——選擇、配置和執行模組。所有組件都可存取黑板,可產生新的資料物件並新增至黑板。在黑板中,可根據已有知識來源的配對規則,尋找某些類型的資料。
  •     
  • 應用情境
#語音辨識

車輛辨識與追蹤

蛋白質結構鑑定

#聲吶訊號解釋


#10.解釋器模式

  • 此模式用於設計解釋特定語言編寫的程式的元件。這個元件主要指定怎麼去評估程式碼行,也就是所謂的用某種語言寫的語句或表達式,基本點在於給語言符號分類。
    應用場景


#資料庫查詢語言,例如SQL

用來描述通訊協定的語言


#架構模式比較


#下面的表格概述每個架構模式的優缺點。 ##################希望這篇文章對你有幫助,也很想聽聽你們的想法。謝謝閱讀。 ^_^#######

以上是幾種常見的軟體架構是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn