超詳細干貨:架構(gòu)設(shè)計師必備的10種設(shè)計模式_第1頁
超詳細干貨:架構(gòu)設(shè)計師必備的10種設(shè)計模式_第2頁
超詳細干貨:架構(gòu)設(shè)計師必備的10種設(shè)計模式_第3頁
超詳細干貨:架構(gòu)設(shè)計師必備的10種設(shè)計模式_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

超詳細干貨:架構(gòu)設(shè)計師必備的10種設(shè)計模式

企業(yè)規(guī)模的軟件系統(tǒng)該如何設(shè)計呢?在開頭寫代碼之前,我們需要選擇一個合適的架構(gòu),這個架構(gòu)將打算軟件實施過程中的功能屬性和質(zhì)量屬性。因此,了解軟件設(shè)計中的不同架構(gòu)模式對我們的軟件設(shè)計會有較大的關(guān)心。

一、軟件架構(gòu)模式

什么是架構(gòu)模式?架構(gòu)模式是針對特定軟件架構(gòu)場景常見問題的通用、可重用解決方案。架構(gòu)模式類似于軟件設(shè)計模式,但范圍更廣。本文將簡要解釋10種常見架構(gòu)模式及其用法、優(yōu)缺點。

1、分層模式

此模式用于可分解為子任務(wù)的結(jié)構(gòu)化程序,每個子任務(wù)都位于特定的抽象層級,每一層都為上一層供應(yīng)服務(wù)。一般信息系統(tǒng)最常見的4個層次如下。

①表示層(也稱為UI層)

②應(yīng)用層(也稱為服務(wù)層)

③業(yè)務(wù)規(guī)律層(也稱為領(lǐng)域?qū)樱?/p>

④數(shù)據(jù)訪問層(也稱為長久層)

應(yīng)用場景:

①一般的桌面應(yīng)用程序

②電子商務(wù)web應(yīng)用程序

③一般的移動App

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

這種模式由兩部分組成:服務(wù)器和多個客戶端。服務(wù)器將向多個客戶端供應(yīng)服務(wù)。客戶端從服務(wù)器懇求服務(wù),服務(wù)器向這些客戶端供應(yīng)相關(guān)服務(wù)。此外,服務(wù)器連續(xù)偵聽客戶端懇求。

應(yīng)用場景:

①電子郵件、文檔共享和銀行等在線應(yīng)用程序。

②基于IPC的應(yīng)用程序

3、主從模式

這種模式由兩部分組成:主節(jié)點和從節(jié)點。主節(jié)點將工作安排給相同的從節(jié)點,并依據(jù)從節(jié)點返回的結(jié)果計算最終結(jié)果。

應(yīng)用場景:

①在數(shù)據(jù)庫復(fù)制中,主數(shù)據(jù)庫被視為權(quán)威源數(shù)據(jù)庫,從數(shù)據(jù)庫與之同步。

②通過總線連接到計算機系統(tǒng)(主驅(qū)動器和從驅(qū)動器)的外圍設(shè)備。

③進程內(nèi)的多線程應(yīng)用。

4、管道-過濾器模式

這種模式可用于構(gòu)造生成和處理數(shù)據(jù)流的系統(tǒng)。每個處理步驟都包含一個過濾器組件。要處理的數(shù)據(jù)通過管道傳遞。這些管道可用于緩沖或同步目的。

應(yīng)用場景:

①編譯器。連續(xù)過濾器執(zhí)行詞法分析、詞法解析、語義分析和代碼生成。

②生物信息學(xué)的工作流

③工具鏈式的應(yīng)用程序

5、代理模式

這種模式通過解耦組件來構(gòu)造分布式系統(tǒng)。這些組件可以通過遠程服務(wù)調(diào)用彼此交互。代理組件負責(zé)協(xié)調(diào)組件之間的通信。服務(wù)器向代理發(fā)布功能(服務(wù)和特征)。客戶端向代理懇求服務(wù),然后代理將客戶端重定向到合適的服務(wù)。需要留意broker,agent,proxy以及delegate的區(qū)分。

應(yīng)用場景:

①消息代理軟件,例如:ApacheActiveMQ、ApacheKafka、RabbitMQ和JBoss消息傳遞。

②網(wǎng)絡(luò)傳輸中的代理軟件。

6、P2P模式

在這種模式中,每個組件都稱為對等節(jié)點。對等節(jié)點既可以作為客戶機(從其他對等節(jié)點懇求服務(wù)),也可以作為服務(wù)器(向其他對等節(jié)點供應(yīng)服務(wù))。對等節(jié)點可以充當(dāng)單個客戶機或服務(wù)器,也可以同時充當(dāng)客戶機和服務(wù)器,并且可以隨著時間變化動態(tài)地更改角色。

使用場景:

①文件共享網(wǎng)絡(luò),例如Gnutella和G2等。

②多媒體協(xié)議,如P2PTV和PDTP。

7、大事-總線模式

這種模式也被稱為訂閱發(fā)布模式,主要處理大事,有4個主要組件:大事源、大事監(jiān)聽者、通道和大事總線。大事源將消息發(fā)布到大事總線上的特定通道,監(jiān)聽者訂閱特定的通道。消息發(fā)布到監(jiān)聽者之前訂閱的通道,監(jiān)聽者將收到消息的通知。

使用場景:

①安卓開發(fā)

②通知服務(wù)

③注冊中心

8、模型-視圖-掌握器模式

這種模式,也稱為MVC模式,將一個交互應(yīng)用程序分為三個部分:

①模型-包含核心功能和數(shù)據(jù)

②視圖——向用戶顯示信息(可以定義多個視圖)

③掌握器——處理來自用戶的輸入

這樣做是為了將信息的內(nèi)部表示、信息呈現(xiàn)給用戶的方式、接受用戶輸入的方式分別開來。這種模式解耦組件并允許有效的代碼重用。

應(yīng)用場景:

①一般的web應(yīng)用程序架構(gòu)

②Django和Rails等Web框架

③一般的GUI應(yīng)用程序

9、黑板模式

這種模式對于沒有確定解決方案策略的問題特別有用。黑板圖案由三個主要部分組成:

①黑板:一個結(jié)構(gòu)化的全局內(nèi)存,包含來自解決方案空間的對象

②學(xué)問源:具有自己表示形式的特地化模塊

③掌握組件:選擇、配置和執(zhí)行模塊

全部的組件都可以到達黑板。組件可以生成添加到黑板上的新數(shù)據(jù)對象。組件在黑板上查找特定類型的數(shù)據(jù),并通過與現(xiàn)有的學(xué)問源進行模式匹配找到這些數(shù)據(jù)。

應(yīng)用場景:

①語音識別

②車輛識別及追蹤

③蛋白質(zhì)結(jié)構(gòu)識別

④聲納信號的解釋

10、解釋器模式

這種模式用于設(shè)計一個解釋專用語言

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論