国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

干了這么些年程序員,這7種軟件架構模式必須得掌握了

新聞 前端
架構模式是對給定上下文的軟件架構中常見問題的一種通用的可復用的解決方案。

 [[410098]]

架構模式是對給定上下文的軟件架構中常見問題的一種通用的可復用的解決方案。

一種模式就是特定上下文的問題的一種解決方案。

然而,很多開發者至今還對各種軟件架構模式之間的差別搞不清,甚至對其所知甚少。

大體上,主要有下面這7種架構模式:

  1. 分層架構

  2. 多層架構

  3. 管道 - 過濾器架構

  4. 客戶端 - 服務器架構

  5. 模型 - 視圖 - 控制器架構

  6. 事件驅動架構

  7. 微服務架構

# 分層架構模式

最常見的架構模式就是分層架構或者稱為 n 層架構。

大部分軟件架構師、設計師和開發者都對這個架構模式非常熟悉。盡管對于層的數量和類型沒有具體限制,但大部分分層架構主要由四層組成:展現層、業務層、持久層和數據庫層,如下圖所示。

一個很流行的 n 層架構示例

1 上下文 

所有復雜的系統都會經歷獨立地發展和衍化系統各個部分的需要。出于這個原因,系統開發者需要對關注點進行清晰且條理分明的分離,以便系統的各個模塊可以獨立地開發和維護。

2 問題 

軟件需要以這樣一種方式分割:各個模塊可以獨自開發和衍化,各自部分之間的交互非常少,支持可移植性、可修改性和復用性。

3 方案 

為了實現關注點分離,分層模式將軟件分割成各個單元(稱為“層”)。每一層都是一組模塊,提供了一組高內聚的服務。其使用必須是單向的。層將一組軟件作為一個完整的分區,每個分區暴露一個公開接口。

  • 第一個概念是,每一層都有特定的角色和職責。例如,展現層負責處理所有的用戶界面。分層架構的這種關注點分離,讓構建高效的角色和職責非常簡單。

  • 第二個概念是,分層架構模式是一個技術性的分區架構,而非一個領域性的分區架構。它們是由組件組成的,而不是領域。

  • 最后一個概念是,分層架構中的每一層都被標記為封閉或者開放。封閉層意味著請求從一層移到另一層,它必須通過它正下面的這一層才能達到下面這一層的再下一層。請求不能跳過任何層。

封閉層和請求訪問

4 弱點 

分層會導致性能下降。這種模式不適合高性能應用程序,因為經過架構中的多層來實現一個業務請求的效率是不高的。

分層還會增加系統的前期成本和復雜性。

5 用途 

我們應該將這種方式應用于小型簡單的應用程序或網站。對于預算和時間非常緊張的場景,這是一個不錯的選擇。

# 多層模式

方案 

一個多層模式示例:消費者網站 J2EE

許多系統的執行結構被組織成一系列邏輯組件分組。每個分組被稱為一個層。

1 上下文 

在一個分布式部署中,通常需要將系統的基礎設施分到不同的子集中。

2 問題 

我們如何將系統分割到多個計算上獨立的執行結構:由一些通信媒介連接的軟件和硬件組?

3 弱點 

大量前期成本和復雜性。

4 用途 

用在分布式系統中。

# 管道-過濾器架構

軟件架構中反復出現的一種模式是管道 - 過濾器(pipe-filter)模式。

管道過濾器模式

1 上下文 

許多系統需要轉換從輸入到輸出的離散數據流。許多類型轉換在實踐中重復出現,因此將其創建成獨立的可復用的部分,這是比較理想的。

2 問題 

這些系統需要被分割成可復用的松耦合的組件,組件之間擁有簡單通用的交互機制。這樣它們就可以靈活地相互結合。這些通用松耦合的組件就很容易復用。那些獨立的組件可以并行執行。

3 方案 

這種架構中的管道構成了過濾器之間的通信通道。第一個概念是,由于性能原因,每個管道都是非定向的和點對點的,接受來自一個源的輸入并經常直接輸出到另外一個源。

在這種模式中,有如下四種過濾器。

  • producer(source):一個過程的起點。

  • transformer (map):對一些或所有數據進行轉換。

  • tester (reduce):測試一個或多個條件。

  • consumer (sink):終點。

4 弱點 

不太適合交互性的系統,因為它們的轉換特性。

過多的解析和反解析會導致性能損失,也會增加編寫過濾器本身的復雜性。

5 用途 

管道 - 過濾器架構用于各種應用程序,特別是簡化單項處理的任務,例如 EDI、ETL 工具。

編譯器:連續的過濾器執行詞法分析、語法分析、語義分析和代碼生成。

# 客戶端-過濾器架構

1 上下文 

有許多共享資源和服務是大量分布式的客戶端希望訪問的,我們希望控制訪問或服務質量。

2 問題 

通過管理一組共享資源和服務,我們可以通過分解公共服務并在單個位置或少數位置進行修改來提高可修改性和復用性。我們想要通過在將資源本身分布在多個物理服務器上的同時集中控制這些資源和服務,來提高可伸縮性和可用性。

3 方案 

在客戶端 - 服務器模式中,組件和連接器具有特定的行為。

稱為“客戶端”的組件將請求發送到稱為“服務器”的組件,然后等待回復。

服務器組件接收到客戶端的請求并向其發送回復。

4 弱點 

服務器會成為性能瓶頸和單點故障位置。

在系統建成后,關于功能位置(在客戶端還是在服務器)的決策通常是復雜的而且變動成本很大。

5 用途 

對于有許多組件(客戶端)發送請求到另外一些提供服務的組件(服務器)的系統,我們可以使用客戶端 - 服務器模式來建模這個系統的一部分:在線應用程序,例如電子郵件、共享文檔或銀行服務。

# 模型-視圖-控制器架構(MVC)

1 上下文 

用戶界面通常是一個交互性應用程序的最頻繁被修改的部分。用戶通常希望從不同的視角查看數據,例如柱狀圖或者餅圖。這些表示形式都應該反映數據當前的狀態。

2 問題 

用戶界面功能如何獨立于應用程序功能,同時還還對用戶輸入或底層應用程序數據的更改做出響應?

當底層應用程序數據更改時,如何創建、維護和協調用戶界面的多個視圖?

3 方案 

模型 - 視圖 - 控制器(model-view-controller,即 MVC)模式將應用程序功能分為以下三種類型的組件:

  • 模型,包含應用程序的數據。

  • 視圖,顯示部分底層數據并與用戶交互。

  • 控制器,在模型和視圖之間進行中介并管理狀態更改的通知。

4 弱點 

對于簡單的用戶界面,其復雜性并不值得這么做。

模型、視圖和控制器抽象可能不適用于某些用戶界面工具包。

5 用途 

MVC 是網站或移動應用程序開發用戶界面常用的一種架構模式。

# 事件驅動架構

1 上下文 

需要提供計算和信息資源來處理傳入的應用程序生成的獨立異步事件,這種方式可以隨著需求的增加而擴展。

2 問題 

構建分布式系統,這個系統可以服務異步到達的事件相關信息,并且能從簡單小型擴展到復雜大型。

3 方案 

為事件處理部署獨立的事件進程或處理器。到達的事件進入隊列。調度程序根據調度策略從隊列中拉取事件并將它們分配到合適的事件處理器。

4 弱點 

性能和錯誤恢復可能是問題。

5 用途 

使用這個方案的電商應用程序將工作如下:

Order Service 創建一個 Order,這個訂單處于待定狀態,然后發布一個OrderCreated事件。

  • Customer Service 接收到這個事件并嘗試為這個 Order 扣除信用。然后發布一個 Credit Reserved 事件或者CreditLimitExceeded(超出信用限額)事件。

  • Order Service 接收到 Customer Service 發送的事件并將訂單狀態更改為已核準或已取消。

# 微服務架構

1 上下文 

部署基于服務器的企業應用程序,支持各種瀏覽器和原生移動客戶端。應用程序通過執行業務邏輯、訪問數據庫、與其它系統交換信息并返回響應來處理客戶端請求。這個應用程序可能會暴露一個第三方 API。

2 問題 

一體化應用程序會變得過于龐大和復雜,無法得到有效支持和部署來實現最優的分布式資源利用,例如在云環境中。

3 方案 

將應用程序構建成服務套件。每個服務都是獨立部署和可擴展的,擁有自己的 API 邊界。不同的服務可以用不同的編程語言編寫,管理它們自己的數據庫,由不同的團隊開發。

4 弱點 

系統設計必須能容忍服務失敗,需要更多的系統監控。服務編排和事件協作開銷比較大。

當然,我們還需要更多錢。

5 用途 

許多使用場景都可以應用微服務架構,特別是那些涉及大量數據管道的場景。例如,一個微服務系統對關于一個公司的零售店銷售的報表系統會比較理想。數據展現過程的每一步都會被一個微服務處理:數據收集、清理、規范化、濃縮、聚合、報告等。

 

責任編輯:張燕妮 來源: 俠夢的開發筆記
相關推薦

2021-01-07 09:57:46

軟件架構服務器

2020-10-26 15:20:05

架構運維技術

2017-12-06 10:43:51

程序員軟技能

2019-07-23 17:20:02

Java微服務軟件架構模式

2020-06-28 10:15:39

架構模式軟件

2017-09-14 09:30:38

軟件架構模式

2023-11-01 08:01:48

數據結構軟件工程

2023-10-12 18:00:34

Git系統命令

2018-07-02 10:15:11

Java程序員注解

2023-06-16 13:34:00

軟件架構模式

2023-07-07 15:28:44

2018-08-24 20:57:55

程序員編程語言Python

2022-06-14 11:01:37

架構模式開發

2022-08-10 14:51:33

開源Java工具

2024-04-01 08:40:23

UML畫法模型圖

2024-06-25 13:02:25

2011-05-24 17:20:57

程序員

2020-04-24 09:26:30

Java程序員工具

2020-04-07 15:30:08

程序員AI編程語言

2021-07-02 06:54:45

軟件架構模式
點贊
收藏

51CTO技術棧公眾號

这里只有精品视频| 九色porny丨国产首页在线| 国产mv免费观看入口亚洲| 亚洲成人教育av| 亚洲色图美腿丝袜| 国产精品国语对白| 欧美日韩精品一区| 91在线国产电影| 欧美国产日本在线| 亚洲乱亚洲乱妇无码| 黄色小网站91| 日本高清视频网站www| 一区二区三区四区视频免费观看 | 菁菁伊人国产精品| 国产综合网站| 久久国产精品久久久久| 香港伦理在线| 亚洲乱码国产乱码精品精的特点| 超碰10000| 翔田千里一区二区| 成人免费看片网站| 国产高清一区二区| 国产精品亚洲欧美导航| 妖精视频一区二区三区免费观看| 日韩有码在线观看| free欧美| 日韩av在线网页| 久久大胆人体| 精品久久五月天| a毛片在线看免费观看| 色综合色狠狠天天综合色| 国内精品卡一卡二卡三新区| 亚洲欧美日韩综合aⅴ视频| 久久99999| 国产精品久久久久四虎| 不卡的av中文字幕| 亚洲欧美日韩一区二区三区在线观看| 无套内精的网站| 一二三区精品福利视频| 蜜臀一区二区三区| 一本一本久久a久久精品综合麻豆| 一个人看的www一区| 亚洲电影一区二区三区| 中出在线观看| 欧美性大战久久久久久久蜜臀| 国内在线免费高清视频| 91高清视频在线| 麻豆视频网站在线观看| 日韩免费视频一区二区| 国产高清不卡| 久久久国产影院| 亚洲精品小区久久久久久| 欧美孕妇性xx| 中文不卡在线| 色婷婷综合在线| 午夜影院在线观看视频| 色综合久久综合中文综合网| 国产黄在线看| 精品国产乱码久久久久久图片| 51漫画成人app入口| 夜夜嗨av色一区二区不卡| 亚洲一区导航| 国产成人91久久精品| 99久久精品网站| 久久久精彩视频| 国产一区二区三区四区五区美女| 中文字幕欧美人与畜| 成人精品视频一区二区三区| 韩国日本在线视频| 一区二区国产视频| 欧洲不卡av| 色偷偷888欧美精品久久久| 精品国产午夜肉伦伦影院| 亚洲一区二区三区香蕉| 蜜臀a∨国产成人精品| 九九九九九九精品任你躁| 91精品国产免费久久久久久 | 欧美丝袜第三区| 黄色精品免费看| 色天天综合色天天久久| yy6080久久伦理一区二区| 欧美一区二区观看视频| 9.1麻豆精品| 三上悠亚在线观看二区| 精品福利一区二区| 大桥未久在线播放| 精品国产乱码久久久| 欧美日韩国产不卡在线看| 欧美国产一级| 欧美色网在线| 天堂成人国产精品一区| www.av中文字幕| 亚洲成人动漫av| 伊人中文字幕在线| 亚洲免费观看高清在线观看| 色中色在线视频| 日韩欧美有码在线| 你懂得网站在线| 欧美日韩另类视频| 日本精品不卡| 97色在线观看免费视频| 国产日本亚洲| 日韩欧美一区二区久久婷婷| 麻豆久久久久| 亚洲美女喷白浆| 精品一区二区三区亚洲| 欧美理论电影在线播放| 久久精品一区| 久久青青草原| 一区二区三区在线视频看| 丁香激情综合国产| 免费成人av电影| 久久精品国产亚洲7777| 女同性一区二区三区人了人一 | 在线看三级网站视频| 亚洲国产高潮在线观看| 精品国产一区探花在线观看 | 蜜桃一区二区三区| 熟女视频一区二区三区| 久久久久久久久久久久电影| 日本国产在线播放| 欧美体内she精视频| 日本h片久久| 国产网站欧美日韩免费精品在线观看 | 国产亚洲精品一区二区| 大片网站久久| 日本免费黄视频| 日韩欧美电影一区| 色呦哟—国产精品| 欧美一级裸体视频| 国产亚洲精品综合一区91| 国产精品亚洲欧美| 一二三区在线视频| 国内精品久久久久久| 成人晚上爱看视频| 操人在线观看| 日韩一本精品| 欧美老年两性高潮| 欧美视频在线观看| 日韩资源在线| 国产欧亚日韩视频| 亚洲制服欧美中文字幕中文字幕| 欧美一区在线观看视频| 高清欧美精品xxxxx| 日韩成人av在线| 免费观看日韩av| 男人在线资源站| 99在线首页视频| 青青一区二区三区| 成人高清在线| 福利视频一区二区三区| www精品美女久久久tv| 欧美极品影院| 成人一区二区在线| 久久亚洲精品人成综合网| 一色桃子在线| 色偷偷888欧美精品久久久| 日本中文一区二区三区| 亚洲麻豆精品| 伊人夜夜躁av伊人久久| 国产精品久99| 1024成人| 国产精品片aa在线观看| 欧美va在线| 日本a一级在线免费播放| 亚洲精品电影在线一区| 国产精品久久久av| 国产午夜精品久久久| 久久精品国产清自在天天线| 你懂的网址一区二区三区| 久久久久国产精品| 中文字幕在线视频网| 看欧美ab黄色大片视频免费| 免费在线观看毛片网站| 国产伦精品免费视频| 久久久亚洲影院| 5566日本婷婷色中文字幕97| 高清在线视频日韩欧美| 成人av免费电影| 精品视频在线观看一区二区| 欧美一区观看| 午夜视频在线免费| 日韩综合av| 国产视频亚洲色图| 亚洲精品乱码久久久久久 | 国产精品美女久久久久久久久| 亚洲成va人在线观看| 精品中文字幕视频| 国产美女扒开尿口久久久| 川上优av一区二区线观看| 成人网在线观看| 国产又大又硬又粗| 在线中文字幕资源| xxx在线免费观看| 亚洲一区二区免费在线观看| 国产精品蜜芽在线观看| 欧美人与动xxxxz0oz| 91在线你懂得| 精品免费国产二区三区 | 久久婷婷人人澡人人喊人人爽|