這篇文章主要介紹常見(jiàn)的軟件架構(gòu)有哪些,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
常見(jiàn)的軟件架構(gòu)模式:分層架構(gòu)模式、客戶端-服務(wù)器模式、主從模式、管道-過(guò)濾器模式、代理模式、點(diǎn)對(duì)點(diǎn)模式、事件總線模式、模型-視圖-控制器(MVC)模式、黑板模式、解釋器模式等。
10種常見(jiàn)軟件架構(gòu)模式
是否想知道大型企業(yè)級(jí)系統(tǒng)是怎么設(shè)計(jì)的?在軟件主體開(kāi)發(fā)之前,我們必須選擇一個(gè)合適的架構(gòu)來(lái)提供所需的功能和質(zhì)量特征。所以在應(yīng)用于設(shè)計(jì)之前,我們應(yīng)該了解不同的架構(gòu)。
什么是架構(gòu)模式
維基百科:架構(gòu)模式是在給定上下文的軟件架構(gòu)中,針對(duì)常發(fā)生問(wèn)題的一種通用、復(fù)用的解決方案。架構(gòu)模式類(lèi)似于軟件設(shè)計(jì)模式,但是范疇更廣。
本文中,我將簡(jiǎn)要的闡述如下10中常見(jiàn)架構(gòu)模式的應(yīng)用和優(yōu)缺點(diǎn)。
1. 分層模式
2. 客戶端-服務(wù)端模式
3. 主從模式
4. 管道-過(guò)濾器模式
5. 代理模式
6. 點(diǎn)對(duì)點(diǎn)模式
7. 事件總線模式
8. 模型-視圖-控制器模式
9. 黑板模式
10. 解釋器模式
1. 分層模式
該模式用于構(gòu)建可分解為多組子任務(wù)的程序,每個(gè)子任務(wù)都在某個(gè)抽象層,每個(gè)層對(duì)上一個(gè)更高層提供服務(wù)。一般信息系統(tǒng)中最常見(jiàn)的4層體系如下。
表示層(也叫 UI 層)
應(yīng)用層(也叫服務(wù)層)
業(yè)務(wù)邏輯層(也叫領(lǐng)域?qū)樱?/p>
數(shù)據(jù)訪問(wèn)層(也叫持久層)
一般桌面程序
電子商務(wù)網(wǎng)頁(yè)程序
2. 客戶端-服務(wù)器模式
該模式由兩部分構(gòu)成:?jiǎn)蝹€(gè)服務(wù)器端和多個(gè)客戶端。服務(wù)器組件對(duì)多個(gè)客戶端組件提供服務(wù)。客戶端向服務(wù)器端請(qǐng)求服務(wù),服務(wù)端提供對(duì)應(yīng)服務(wù)給這些客戶端。此外,服務(wù)器端繼續(xù)監(jiān)聽(tīng)客戶端請(qǐng)求。
應(yīng)用場(chǎng)景
在線應(yīng)用,比如電子郵件、文檔分享和銀行業(yè)務(wù)
3. 主從模式
該模式由兩部分構(gòu)成:主節(jié)點(diǎn)和多個(gè)從節(jié)點(diǎn)。主節(jié)點(diǎn)組件向多個(gè)獨(dú)立的從節(jié)點(diǎn)組件分派任務(wù),并根據(jù)從節(jié)點(diǎn)返回結(jié)果計(jì)算出最終結(jié)果。
應(yīng)用場(chǎng)景
數(shù)據(jù)庫(kù)復(fù)制,主數(shù)據(jù)庫(kù)被視為權(quán)威來(lái)源并同步到從數(shù)據(jù)庫(kù)
連接到計(jì)算系統(tǒng)的外圍設(shè)備(主從驅(qū)動(dòng))
4. 管道-過(guò)濾器模式
該模式用于構(gòu)建生產(chǎn)和處理數(shù)據(jù)流的系統(tǒng)。每個(gè)處理步驟封裝在一個(gè)過(guò)濾器組件中。待處理的數(shù)據(jù)被傳送到管道之中,這些管道可用于緩沖或者同步。
應(yīng)用場(chǎng)景
編譯器,接連的過(guò)濾器執(zhí)行詞義分析,語(yǔ)法分析,語(yǔ)義分析和代碼生成
生物資料學(xué)科的工作流
5. 代理模式
該模式用于構(gòu)建組件解耦的分布式系統(tǒng)。這些組件通過(guò)遠(yuǎn)程調(diào)用彼此交互。代理組件負(fù)責(zé)多個(gè)組件的通信協(xié)調(diào),服務(wù)器向代理公開(kāi)他們的能力(服務(wù)和特性);客戶端從代理中獲取服務(wù),然后代理重定向客戶端到注冊(cè)服務(wù)庫(kù)中一個(gè)合適的服務(wù)。
應(yīng)用場(chǎng)景
消息隊(duì)列軟件,比如 Apache ActiveMQ、Apache Kafka、RabbitMQ 和 JBoss Messaging
6. 點(diǎn)對(duì)點(diǎn)模式
該模式中,各獨(dú)立組件都叫對(duì)等點(diǎn)。對(duì)等點(diǎn)既可以作為客戶端從其他對(duì)等點(diǎn)獲取服務(wù),也可作為服務(wù)端向其他對(duì)等點(diǎn)提供服務(wù)。對(duì)等點(diǎn)可作為客戶端、或者服務(wù)端、或者兩者,并且在不時(shí)間動(dòng)態(tài)切換角色。
應(yīng)用場(chǎng)景
文件分享網(wǎng)絡(luò),比如 Gnutella 和 G2
多媒體協(xié)議,比如 P2PTV 和 PDTP
私媒體程序,比如 Spotify
7. 事件總線模式
該模式主要處理事件,有4個(gè)主要組件:事件源,事件監(jiān)聽(tīng)器,頻道和事件總線。事件源發(fā)布消息到事件總線上的某個(gè)頻道,監(jiān)聽(tīng)器訂閱某個(gè)頻道,并得知在已訂閱頻道中發(fā)布的消息。
應(yīng)用場(chǎng)景
Android 開(kāi)發(fā)
通知服務(wù)
8. 模型-視圖-控制器模式
該模式也叫 MVC 模式,劃分交互程序?yàn)?個(gè)部分:模型——包含核心功能和數(shù)據(jù),視圖——顯示信息給用戶(多個(gè)視圖可被定義),控制器——處理用戶輸入。它通過(guò)分割用戶信息的內(nèi)部陳述和呈現(xiàn)、接受方式來(lái)實(shí)現(xiàn),解耦組件并允許高效的代碼復(fù)用。
應(yīng)用場(chǎng)景
主流編程語(yǔ)言的萬(wàn)維網(wǎng)程序架構(gòu)
網(wǎng)頁(yè)框架,比如 Django 和 Rails
9. 黑板模式
該模式對(duì)沒(méi)有確定性方案策略的問(wèn)題很有用。黑板模式由三個(gè)主要組件組成,黑板——包含解空間對(duì)象的結(jié)構(gòu)化全局內(nèi)存,知識(shí)源——有自擁表示的專(zhuān)門(mén)模塊,控制組件——選擇、配置和執(zhí)行模塊。所有組件都可訪問(wèn)黑板,可生成新的數(shù)據(jù)對(duì)象并添加到黑板中。在黑板中,可根據(jù)已有知識(shí)源的匹配規(guī)則,尋找某些類(lèi)型的數(shù)據(jù)。
應(yīng)用場(chǎng)景
語(yǔ)音識(shí)別
車(chē)輛識(shí)別和跟蹤
蛋白質(zhì)結(jié)構(gòu)鑒定
聲吶信號(hào)解釋
10. 解釋器模式
該模式用于設(shè)計(jì)解釋特定語(yǔ)言編寫(xiě)的程序的組件。該組件主要指定怎么去評(píng)估程序代碼行,也就是所謂的用某種語(yǔ)言寫(xiě)的語(yǔ)句或者表達(dá)式,基本點(diǎn)在于給語(yǔ)言符號(hào)分類(lèi)。
應(yīng)用場(chǎng)景
數(shù)據(jù)庫(kù)查詢語(yǔ)言,比如 SQL
用于描述通信協(xié)議的語(yǔ)言
架構(gòu)模式比較
下面的表格概述每個(gè)架構(gòu)模式的優(yōu)缺點(diǎn)。
以上是“常見(jiàn)的軟件架構(gòu)有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁(yè)題目:常見(jiàn)的軟件架構(gòu)有哪些-創(chuàng)新互聯(lián)
文章位置:http://chinadenli.net/article12/dippdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站內(nèi)鏈、標(biāo)簽優(yōu)化、全網(wǎng)營(yíng)銷(xiāo)推廣、服務(wù)器托管、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容