成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一篇帶你了解軟件架構模式之分層架構

開發 架構
分層架構模式是一種N層模式,其中組件按照水平層次進行組織。這是設計大多數軟件的傳統方法,旨在實現自我獨立。這意味著所有組件之間相互連接,但彼此之間不相互依賴。

本篇我們將討論分層架構模式。

分層架構模式是一種n層模式,其中組件按照水平層次進行組織。這是設計大多數軟件的傳統方法,旨在實現自我獨立。這意味著所有組件之間相互連接,但彼此之間不相互依賴。

這種架構模式有四個層,每個層中的模塊性和組件之間都有連接。從上到下,它們分別是:

展示層:包含與展示相關的所有類別。

業務層:它包含業務邏輯。

持久層:用于處理對象關系映射等功能

數據庫層:存儲所有數據。

在這種情況下,各層是封閉的,也就是說請求必須從頂部到底部經過所有層。這樣設計有兩個原因,一個是將所有"相似"的組件放在一起,另一個原因是提供層次的隔離。

進一步說明,將“相似”的組件放在一起意味著與某個層相關的所有內容都保留在該單一層中。這樣可以清晰地區分各種組件,并且有助于將相似的代碼集中在一個位置。通過隔離各層,它們相互之間變得獨立。因此,例如,如果我們想將數據庫從Oracle服務器更改為SQL服務器,這將對數據庫層產生重大影響,但不會影響其他層。同樣,假設您有一個自定義的業務層,并且想要將其更改為業務規則引擎,如果我們有一個良好定義的分層架構,這種更改不會影響其他層。

分層架構模式可以在所提及的層級之外進行修改,增加其他層級。這被稱為混合分層架構。例如,在業務層和持久化層之間可以添加一個服務層。然而,這并不是理想的設計,因為現在業務層必須經過服務層才能到達持久化層。這個請求通過服務層并沒有任何價值。我們稱之為架構陷阱反模式。請求經過各層時,在每個層中幾乎沒有或沒有執行任何邏輯。

唯一解決這個問題的方法是將可選的層級設置為開放層。這意味著如果可選的層級對發送的請求有任何增值作用,請求就會經過該層級。如果沒有增值作用,請求將直接繞過該層級,進入相關的下一層級。在上圖中可以看到這種情況,請求繞過了服務層,從業務層直接進入持久化層。

然而需要注意的是,通過設置開放層,我們削弱了層級之間獨立的好處。如果我們想替換持久化層,就必須考慮到開放的服務層和業務層。這兩個層級現在都與持久化層耦合在一起。因此,雖然向系統中添加開放層非常容易,但我們不允許這種情況發生。我們必須在不損害架構的情況下解決問題。

結論

分層架構是最簡單的軟件架構模式。如果要設計一個基本的應用程序,用戶數量很少(<100-200),并且在投入使用后不會有太多的需求變化,那么這是最好的軟件架構模式。與其他模式相比,這種架構模式的實現成本非常低。

以下是分層架構模式的優劣分析。

優點

這種架構模式易于測試,因為組件屬于特定的層級。因此,它們可以單獨測試。

由于大多數應用程序自然而然地按層級工作,所以這種架構模式簡單易實現。

缺點

盡管可以對特定層進行更改,但這并不容易,因為應用程序是一個單一的單元。而且,層之間的耦合關系往往會增加難度。這也使得擴展變得困難。

它必須作為一個單一的單元部署,因此對特定層的更改意味著整個系統必須重新部署。

它的規模越大,請求經過多個層級所需的資源就越多,從而導致性能問題。

責任編輯:姜華 來源: 今日頭條
相關推薦

2023-06-16 13:34:00

軟件架構模式

2021-07-28 10:02:54

建造者模式代碼

2023-01-05 07:52:36

高可用架構消息隊列

2022-02-22 08:15:59

微服務架構單體架構

2024-05-21 09:26:54

微服務DDD建模架構

2022-03-07 06:34:22

CQRS數據庫數據模型

2021-05-20 06:57:16

RabbitMQ開源消息

2021-07-02 06:54:45

軟件架構模式

2021-11-24 08:51:32

Node.js監聽函數

2021-08-02 06:34:55

Redis刪除策略開源

2021-11-08 08:42:44

CentOS Supervisor運維

2021-12-15 11:52:34

GPLLinuxGNU

2023-05-12 08:19:12

Netty程序框架

2021-06-30 00:20:12

Hangfire.NET平臺

2021-07-14 08:24:23

TCPIP 通信協議

2021-08-11 07:02:21

npm包管理器工具

2021-07-14 10:08:30

責任鏈模式加工鏈

2021-07-13 11:37:47

cpu架構Linux

2023-06-20 07:27:07

架構組件插件

2023-09-06 14:57:46

JavaScript編程語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人国产在线观看 | 91网在线播放 | 99在线免费视频 | 黄一区二区三区 | 国产毛片久久久 | 欧美一区二区三区在线免费观看 | 人人九九精 | 亚洲iv一区二区三区 | 在线播放中文字幕 | www.99精品 | 国产精品一区二区视频 | 四虎最新视频 | 精品日韩一区二区三区av动图 | 精品日本中文字幕 | 中文字幕亚洲一区二区三区 | 成人在线视频观看 | 国产精品自在线 | 国产视频久久久 | 97精品视频在线观看 | 国产一级视频在线播放 | 亚洲欧洲一区二区 | www国产成人免费观看视频,深夜成人网 | 成人在线精品 | 91日b| 精品国产欧美一区二区三区不卡 | 免费黄色日本 | 看毛片的网站 | 91在线精品视频 | 一级毛片大全免费播放 | 日本天天操 | 精精国产视频 | 国产高清久久久 | 国产免费国产 | 97超碰免费 | 中文字幕在线免费观看 | 午夜精品久久久久久久99黑人 | 亚洲视频一区在线播放 | 国产一二三区在线 | 亚洲精选一区二区 | 国产日韩欧美在线 | 欧美精品一二三 |