女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

10種常見的架構模式

xCb1_yikoulinux ? 來源:一口Linux ? 作者:一口Linux ? 2022-07-11 14:12 ? 次閱讀

想知道如何設計大型企業級的系統嗎?在開始主要的代碼開發之前,我們必須選擇一種合適的體系架構,它將為我們提供所需的功能和質量屬性。因此,在將它們應用到我們的設計之前,應該先了解不同的體系結構。

f81b6664-00cd-11ed-ba43-dac502259ad0.png

- 什么是架構模式 -

根據維基百科,

架構模式是在給定上下文中解決軟件架構中常見問題的通用、可重用的解決方案。架構模式類似于軟件設計模式,但范圍更廣。

在本文中,我會簡單介紹下列10種常見的架構模式,及其用途、優勢和劣勢。

- 分層模式 -

該模式可用于構建可分解為子任務組的程序,其中每個都處于特定的抽象級別。每一次都向更高層提供服務。一般信息系統中最常見的4層劃分如下:

  • Presentation layer表示層(也就是UI層)

  • Application layer應用層(也就是服務層)

  • Business logic layer業務邏輯層(也就是領域層)

  • Data access layer數據訪問層(也就是數據持久層)

應用

  • 一般桌面應用程序

  • 電子商務Web應用程序

f84da9d0-00cd-11ed-ba43-dac502259ad0.jpg

- 客戶端-服務器模式 -

該模式由兩部分組成:一個服務端和多個客戶端,服務器向多個客戶端提供服務。客戶端向服務器發起請求,服務器向這些客戶端提供相關服務,之后,服務器繼續偵聽客戶端的請求。

應用

  • 在線應用程序,如電子郵件、文件共享和銀行業務等

f870e9f4-00cd-11ed-ba43-dac502259ad0.jpg

- 主從模式 -

該模式也分為兩塊:主模塊和從模塊。主模塊在相同的從模塊之間分配工作,并根據從模塊返回的結構來計算最終的結果。

應用

  • 在數據庫復制中,主數據庫被視作權威數據源,而從數據庫與其保持同步

  • 連接到計算機系統總線上的外圍設備(主驅動器和從驅動器)

f88e5aac-00cd-11ed-ba43-dac502259ad0.jpg

- 管道過濾模式 -

此模式可用于構建產生和處理數據流的系統。每個處理步驟都包含在一個過濾器組件中,要處理的數據通過管道傳遞。這些管道可用于緩沖或者同步。

應用

  • 編譯器。依次使用不同的過濾器執行詞法分析、解析、語法分析和代碼生成

  • 生物信息學中的工作流程

f8b327ec-00cd-11ed-ba43-dac502259ad0.png

- Broker模式 -

此模式是使用解耦的組件構建分布式系統,這些組件可以通過遠程服務調用實現交互。代理組件負責協調組件之間的通信。服務器將它們的功能(服務和特征等)發布到代理,客戶端向代理請求服務,然后代理根據其注冊表將客戶端請求轉發給合適的服務。

應用

  • 消息代理軟件,如 Apache ActiveMQ, Apache Kafka, RabbitMQ 和 JBoss Messaging.

f8ccb914-00cd-11ed-ba43-dac502259ad0.png

- P2P模式 -

在此模式中,每個獨立的組件被稱為對等點(或對等端,peer)。對等端既可以充當客戶端(向其它對等端請求服務),又可以充當服務器(向其它對等方提供服務)。同一個對等端可能既是客戶端,又是服務器,并且可以動態改變其角色。

應用

  • 文件共享網絡,如Gnutella 和 G2

  • 多媒體協議,如P2PTV 和 PDTP

  • 基于加密貨幣的產品,如比特幣區塊鏈

f8e9e4f8-00cd-11ed-ba43-dac502259ad0.jpg

- 事物總線模式 -

該模式主要處理組件,有4個重要的組件:事件源、事件偵聽器、通道和事件總線。事件源將消息發送到事件總線上的特定通道,偵聽器會訂閱特定的頻道。當消息發送到頻道中后,訂閱該頻道的偵聽器會收到該消息的通知。

應用

  • 安卓開發

  • 通知服務

f90e8948-00cd-11ed-ba43-dac502259ad0.png

- MVC模式 -

該模式將交互式應用分為三個部分,

  1. 模型——包含核心功能和數據

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

  3. 控制器——處理用戶的輸入

這樣做是為了將數據的內部表示與用戶輸入和向用戶展示的形式分離開來,這樣可以解耦組件,同時也可以進行高效的代碼重用。

應用

  • 主流編程語言的互聯網應用架構

  • 網絡框架,如DjangoRails.

f926c030-00cd-11ed-ba43-dac502259ad0.png

- 黑板模式 -

此模式對于尚無確定性解決方案的問題很有用,黑板模式由三部分組成:

  • 黑板—— 一個結構化的全局內存,包含解決方案領域的對象

  • 知識源——具有自身含義的專業模塊

  • 控制組件——選擇、配置和執行模塊

所有組件都可以訪問黑板,組件可能會產生要添加到黑板中的新數據對象,組件在黑板上尋找特定類型的數據,并且可以通過與現有知識源進行模式匹配來找到這些數據。

應用

f940b6e8-00cd-11ed-ba43-dac502259ad0.png

- 解釋器模式 -

此模式通常用于設計組件來解釋使用專用語言寫出的程序,它主要指定如何估算程序行,即以特定語言編寫的語句或表達式。基本思想是為每種語言符號都設計一個類。

應用

  • 數據庫查詢語言,如SQL

  • 用于描述通信協議的語言

f95d2bde-00cd-11ed-ba43-dac502259ad0.png

- 架構模式對比 -

模式

優點

缺點

分層模式

一個底層服務可以被不同的高層服務使用;分層結果更容易進行標準化,因為可以清晰地定義每個層級層級內的修改不會影響其它層

不是普適性的架構;某些場景下,需要跳過其中一些分層

CS模式

容易對系列服務進行建模,供客戶端請求

請求通常是在服務器的不同線程中進行響應的;因為不同客戶端有不同形式,進程間通信會造成很大負載

主從模式

準確性——服務的執行委托給了不同的從模塊

從模塊是獨立的:沒有共享狀態;主從模塊間的通信延遲可能是一個問題,尤其在實時系統中。

管道過濾器模式

支持并發處理,其中輸入、輸出由數據流組成時,過濾器在接收到數據時即開始計算;容易添加過濾器,系統很容易擴展;過濾器可重用,可以通過重新組合已有的過濾器來創建不同的管道流。

整體效率受最慢的過濾程序限制;從一個過濾器傳遞到另一個時,存在數據轉換的負載

代理模式

允許對象進行動態的修改、增、刪、重定位,對開發者來說內容分發是透明的

需要對服務描述進行標準化

P2P模式

支持去中心化運算;對任意節點的失敗都有高度穩定性;在資源和計算能力方面具有高度可伸縮性

無法保證服務質量,因為節點之間是自愿合作的;很難保證安全;性能取決于節點的數量

事件總線模式

很容易向系統好加入新的發布者、訂閱者和連接;對于高度分布式應用很有效

伸縮性可能是個難題,因為所有的信息傳輸都要通過相同的時間總線

MVC模式

對同一模型很容易構建多個視圖,在運行時可以任意連接或斷開

增加了復雜性,用戶操作可能導致很多不必要的更新

黑板模式

容易添加新應用;很容易擴展數據空間中的結構

修改數據空間的結構很難,因為所有的應用都會被影響;可能需要同步機制和訪問控制

解釋器模式

可能支持高度動態化行為;有利于終端用戶的可編程性;增強了靈活性,因為替換一個解釋程序很容易

因為解釋型語言通常比編譯型語言要慢,因此性能可能是一個問題

end


審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 架構
    +關注

    關注

    1

    文章

    527

    瀏覽量

    25848
  • 模式
    +關注

    關注

    0

    文章

    65

    瀏覽量

    13576
  • 信息系統
    +關注

    關注

    0

    文章

    210

    瀏覽量

    20768
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    介紹三常見的MySQL高可用方案

    在生產環境中,為了確保數據庫系統的連續可用性、降低故障恢復時間以及實現業務的無縫切換,高可用(High Availability, HA)方案至關重要。本文將詳細介紹三常見的 MySQL 高可用
    的頭像 發表于 05-28 17:16 ?135次閱讀

    常見的PFC拓撲架構及控制方法

    本期,芯朋微技術團隊將為各位fans分享常見的PFC拓撲架構及控制方法,為設計選型提供參考。
    的頭像 發表于 04-27 18:03 ?1720次閱讀
    <b class='flag-5'>常見</b>的PFC拓撲<b class='flag-5'>架構</b>及控制方法

    在采用異構模式推理時,如何檢查每層使用的設備是什么?

    在異構模式推理時,無法檢查每層使用的設備是什么
    發表于 03-06 06:49

    示波器的三觸發模式

    示波器的觸發方式不僅影響波形捕捉的時機,還決定了顯示的波形是否穩定。 常見的觸發模式有三: 單次觸發 (Single)、 正常觸發 (Normal)和 自動觸發 (Auto)。下面將對這三
    的頭像 發表于 01-07 11:04 ?6019次閱讀
    示波器的三<b class='flag-5'>種</b>觸發<b class='flag-5'>模式</b>

    請問ADS5474是一什么架構

    請問ADS5474是一什么架構
    發表于 01-02 07:27

    商湯科技完成戰略組織架構重組

    了全新的“1+X”架構模式。其中,“1”代表公司的核心業務,即全力打造行業領先的AI云平臺。該平臺將實現大裝置、基礎模型與AI應用之間的無縫集成,為用戶提供更為便捷、高效的AI服務。 在CV(計算機視覺)領域,商湯科技更是加大了投入力
    的頭像 發表于 12-13 14:09 ?545次閱讀

    架構與設計 常見微服務分層架構的區別和落地實踐

    前言 從強調內外隔離的六邊形架構,逐漸發展衍生出的層層遞進、注重領域模型的洋蔥架構,再到和DDD完美契合的整潔架構架構風格的不斷演進,其實就是為了適應軟件需求越來越復雜的特點。 可以
    的頭像 發表于 10-22 15:34 ?559次閱讀
    <b class='flag-5'>架構</b>與設計 <b class='flag-5'>常見</b>微服務分層<b class='flag-5'>架構</b>的區別和落地實踐

    噪聲傳導的兩模式

    噪聲傳導有兩模式,一為差模傳導,一為共模傳導。
    的頭像 發表于 10-15 11:33 ?657次閱讀
    噪聲傳導的兩<b class='flag-5'>種</b><b class='flag-5'>模式</b>

    常見的電動兩輪車BMS架構應用說明

    電子發燒友網站提供《常見的電動兩輪車BMS架構應用說明.pdf》資料免費下載
    發表于 09-12 09:28 ?2次下載
    <b class='flag-5'>常見</b>的電動兩輪車BMS<b class='flag-5'>架構</b>應用說明

    vim的三工作模式有哪些

    Vim是一個功能強大的文本編輯器,它具有三工作模式:普通模式、插入模式和命令行模式。以下是對這三
    的頭像 發表于 08-30 14:52 ?1369次閱讀

    vim的三工作模式是什么?如何切換

    Vim是一款功能強大的文本編輯器,它具有多種工作模式,以滿足不同用戶的需求。在Vim中,主要有三工作模式:普通模式、插入模式和命令行
    的頭像 發表于 08-30 14:50 ?4106次閱讀

    嵌入式五常見模擬電路

    在嵌入式系統設計中,模擬電路是不可或缺的一部分。它們負責處理真實世界中的信號,如聲音、溫度、壓力等,并將這些信號轉換成數字信號,或者對這些信號進行放大、濾波等處理。以下是五常見的模擬電路及其
    發表于 08-28 15:31

    RISC--V架構的目標和特點

    RISC--V架構的目標 RISC--V架構的目標如下 成為一完全開放的指令集,可以被任何學術機構或商業組織所自由使用 成為一真正適合硬件實現且穩定的標準指令集 RISC--V
    發表于 08-23 00:42

    什么是推挽輸出模式,什么是開漏輸出模式?

    推挽輸出模式和開漏輸出模式是數字電路中兩常見的輸出方式,它們在不同的應用場景下具有不同的優勢和特點。 推挽輸出模式 1.1 概念 推挽輸出
    的頭像 發表于 07-09 14:22 ?3993次閱讀

    伺服電機位置模式和速度模式的區別

    伺服電機作為現代工業自動化領域中的核心動力裝置,其控制模式的選擇對于整個系統的性能有著至關重要的影響。在伺服電機的控制模式中,位置模式和速度模式是最為
    的頭像 發表于 06-05 15:02 ?4780次閱讀