搜尋
首頁常見問題幾種常見的軟體架構是什麼?

常見的軟體架構模式:分層架構模式、客戶端-伺服器模式、主從模式、管道-過濾器模式、代理模式、點對點模式、事件匯流排模式、模型-視圖-控制器( 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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。