小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

概述10種常見軟件架構(gòu)模式

 南莊小筑 2021-03-23

備注

    本文譯自https:///10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013?gi=f8addb915af7,作者Vijini Mallawaarachchi,Sep 4, 2017。

    為了更好的組織語言和理解,符合我們的閱讀習慣,原文的部分段落被合并或者分割。為體現(xiàn)完整性,不刪減文字,保持原文文字內(nèi)容。翻譯純屬個人喜愛、分享和收藏。

正文

    是否想知道大型企業(yè)級系統(tǒng)是怎么設(shè)計的?在軟件主體開發(fā)之前,我們必須選擇一個合適的架構(gòu)來提供所需的功能和質(zhì)量特征。所以在應(yīng)用于設(shè)計之前,我們應(yīng)該了解不同的架構(gòu)。


什么是架構(gòu)模式

    維基百科: 架構(gòu)模式是在給定上下文的軟件架構(gòu)中,針對常發(fā)生問題的一種通用、復(fù)用的解決方案。架構(gòu)模式類似于軟件設(shè)計模式,但是范疇更廣。

    本文中,我將簡要的闡述如下10中常見架構(gòu)模式的應(yīng)用和優(yōu)缺點。
    1. 分層模式
    2. 客戶端-服務(wù)端模式
    3. 主從模式
    4. 管道-過濾器模式
    5. 代理模式
    6. 點對點模式
    7. 事件總線模式
    8. 模型-視圖-控制器模式
    9. 黑板模式
    10. 解釋器模式


1. 分層模式

    該模式用于構(gòu)建可分解為多組子任務(wù)的程序,每個子任務(wù)都在某個抽象層,每個層對上一個更高層提供服務(wù)。一般信息系統(tǒng)中最常見的4層體系如下。
  • 表示層(也叫 UI 層)
  • 應(yīng)用層(也叫服務(wù)層)
  • 業(yè)務(wù)邏輯層(也叫領(lǐng)域?qū)樱?/li>
  • 數(shù)據(jù)訪問層(也叫持久層)
    應(yīng)用場景
  • 一般桌面程序
  • 電子商務(wù)網(wǎng)頁程序

2. 客戶端-服務(wù)器模式

    該模式由兩部分構(gòu)成:單個服務(wù)器端和多個客戶端。服務(wù)器組件對多個客戶端組件提供服務(wù)??蛻舳讼蚍?wù)器端請求服務(wù),服務(wù)端提供對應(yīng)服務(wù)給這些客戶端。此外,服務(wù)器端繼續(xù)監(jiān)聽客戶端請求。
    應(yīng)用場景
  • 在線應(yīng)用,比如電子郵件、文檔分享和銀行業(yè)務(wù)

3. 主從模式

    該模式由兩部分構(gòu)成:主節(jié)點和多個從節(jié)點。主節(jié)點組件向多個獨立的從節(jié)點組件分派任務(wù),并根據(jù)從節(jié)點返回結(jié)果計算出最終結(jié)果。
    應(yīng)用場景
  • 數(shù)據(jù)庫復(fù)制,主數(shù)據(jù)庫被視為權(quán)威來源并同步到從數(shù)據(jù)庫
  • 連接到計算系統(tǒng)的外圍設(shè)備(主從驅(qū)動)


4. 管道-過濾器模式

    該模式用于構(gòu)建生產(chǎn)和處理數(shù)據(jù)流的系統(tǒng)。每個處理步驟封裝在一個過濾器組件中。待處理的數(shù)據(jù)被傳送到管道之中,這些管道可用于緩沖或者同步。
    應(yīng)用場景
  • 編譯器,接連的過濾器執(zhí)行詞義分析,語法分析,語義分析和代碼生成
  • 生物資料學(xué)科的工作流


5. 代理模式

    該模式用于構(gòu)建組件解耦的分布式系統(tǒng)。這些組件通過遠程調(diào)用彼此交互。代理組件負責多個組件的通信協(xié)調(diào),服務(wù)器向代理公開他們的能力(服務(wù)和特性);客戶端從代理中獲取服務(wù),然后代理重定向客戶端到注冊服務(wù)庫中一個合適的服務(wù)。
    應(yīng)用場景
  • 消息隊列軟件,比如 Apache ActiveMQ、Apache Kafka、RabbitMQ 和 JBoss Messaging

6. 點對點模式

    該模式中,各獨立組件都叫對等點。對等點既可以作為客戶端從其他對等點獲取服務(wù),也可作為服務(wù)端向其他對等點提供服務(wù)。對等點可作為客戶端、或者服務(wù)端、或者兩者,并且在不時間動態(tài)切換角色。
    應(yīng)用場景
  • 文件分享網(wǎng)絡(luò),比如 GnutellaG2
  • 多媒體協(xié)議,比如 P2PTV 和 PDTP
  • 私媒體程序,比如 Spotify

7. 事件總線模式

    該模式主要處理事件,有4個主要組件:事件源,事件監(jiān)聽器,頻道和事件總線。事件源發(fā)布消息到事件總線上的某個頻道,監(jiān)聽器訂閱某個頻道,并得知在已訂閱頻道中發(fā)布的消息。
    應(yīng)用場景
  • Android 開發(fā)
  • 通知服務(wù)

8. 模型-視圖-控制器模式

    該模式也叫 MVC 模式,劃分交互程序為3個部分:模型——包含核心功能和數(shù)據(jù),視圖——顯示信息給用戶(多個視圖可被定義),控制器——處理用戶輸入。它通過分割用戶信息的內(nèi)部陳述和呈現(xiàn)、接受方式來實現(xiàn),解耦組件并允許高效的代碼復(fù)用。

    應(yīng)用場景

  • 主流編程語言的萬維網(wǎng)程序架構(gòu)
  • 網(wǎng)頁框架,比如 Django 和 Rails

9. 黑板模式

    該模式對沒有確定性方案策略的問題很有用。黑板模式由三個主要組件組成,黑板——包含解空間對象的結(jié)構(gòu)化全局內(nèi)存,知識源——有自擁表示的專門模塊,控制組件——選擇、配置和執(zhí)行模塊。所有組件都可訪問黑板,可生成新的數(shù)據(jù)對象并添加到黑板中。在黑板中,可根據(jù)已有知識源的匹配規(guī)則,尋找某些類型的數(shù)據(jù)。
    應(yīng)用場景
  • 語音識別
  • 車輛識別和跟蹤
  • 蛋白質(zhì)結(jié)構(gòu)鑒定
  • 聲吶信號解釋

10. 解釋器模式

    該模式用于設(shè)計解釋特定語言編寫的程序的組件。該組件主要指定怎么去評估程序代碼行,也就是所謂的用某種語言寫的語句或者表達式,基本點在于給語言符號分類。
    應(yīng)用場景
  • 數(shù)據(jù)庫查詢語言,比如 SQL
  • 用于描述通信協(xié)議的語言

架構(gòu)模式比較

    下面的表格概述每個架構(gòu)模式的優(yōu)缺點。

    希望這篇文章對你有幫助,也很想聽聽你們的想法。謝謝閱讀。^_^                 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多