日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

架构风格:万金油CS与分层

發(fā)布時間:2025/6/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 架构风格:万金油CS与分层 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

計算機科學家David Wheele曾說過這么一句話:

All problems in computer science can be solved by another level of indirection
意思是:「 計算機科學領(lǐng)域的任何問題都可以通過增加一個間接的中間層來解決」。

這也是CS架構(gòu)和分層架構(gòu)的核心思想!

將CS架構(gòu)和分層架構(gòu)放在一起討論除了上面的原因之外,還有如下幾個原因:

  • CS架構(gòu)和分層架構(gòu)是使用很頻繁的兩種架構(gòu)風格
  • CS架構(gòu)和分層架構(gòu)一般都會結(jié)合使用
  • CS架構(gòu)中的2-tier,3-tier,N-tier與分層架構(gòu)容易混淆,畢竟Tier和Layer都翻譯為「層」

本文將探討如下幾個問題:

  • CS架構(gòu)風格的約束
  • CS架構(gòu)風格對架構(gòu)屬性的影響
  • 2-tier,3-tier,N-tier架構(gòu)模式
  • 分層架構(gòu)風格的約束
  • 分層架構(gòu)風格對架構(gòu)屬性的影響
  • Tier和Layer的區(qū)別「為什么兩層架構(gòu)(2-tier)、三層架構(gòu)(3-tier)、N層架構(gòu)(N-tier)是CS架構(gòu)風格的具體體現(xiàn),而不是分層(Layer)架構(gòu)風格的具體體現(xiàn)?!」
  • CS架構(gòu)風格和分層架構(gòu)風格適用哪些場景

CS架構(gòu)風格的約束

  • Server組件提供了一組服務,并監(jiān)聽對這些服務的請求,
  • Client組件通過一個連接器將請求發(fā)送到Server,希望執(zhí)行一個服務,
  • Server可以拒絕這個請求,也可以執(zhí)行這個請求并將響應發(fā)送回Client。

CS架構(gòu)風格最簡單的實現(xiàn)就是2-tier!即兩層架構(gòu)模式。比如SSH,FTP就是兩層架構(gòu)。以FTP來說:

  • 遠程有一個FTP文件服務器
  • 我們需要使用FTP客戶端去連接那個文件服務器
  • 如果用戶名密碼錯誤,服務器會拒絕連接
  • 連接上以后,客戶端可以下載或上傳文件到服務端

最常用的CS架構(gòu)風格的實現(xiàn)應該是3-tier!三層架構(gòu)一般分為:

  • Presentation tier 表現(xiàn)層
  • Logic tier 業(yè)務邏輯層
  • Data access tier 數(shù)據(jù)訪問層

CS架構(gòu)風格使得客戶端與服務端能夠獨立進化,提高了架構(gòu)的「伸縮性」;架構(gòu)層面代碼隔離,提高了「可維護性」。
由于系統(tǒng)被拆分成了Client和Server,Client與Server端的通信可能會稍微影響「性能」!

分層架構(gòu)的約束

  • 按照層次來進行組織,每個層都有特定的責任
  • 每一層為在其之上的層提供服務,并且使用在其之下的層所提供的服務
  • 較低層不可使用較高層中的服務
  • 一般不跨層調(diào)用

分層架構(gòu)一般分為四層,和CS架構(gòu)風格非常類似,:

  • Presentation layer 表現(xiàn)層 (Controller層可以屬于這一層)
  • Application layer 應用層 (常說的Service層就屬于這一層)
  • Business layer 業(yè)務邏輯層(領(lǐng)域?qū)ο髮訉儆谶@一層)
  • Data access layer 數(shù)據(jù)訪問層(持久層,日志,網(wǎng)絡(luò)層等)

分層架構(gòu)風格使得組件高內(nèi)聚、低耦合,每個組件能獨立進化,提高了架構(gòu)的「伸縮性」;組件層面代碼隔離,提高了「可維護性」;層與層之間調(diào)用限制,可方便的替換對應的層,方便了「組件復用」以及「可移植性」!
由于一個請求可能需要經(jīng)過多層來處理,層與層之間的通信會影響到「性能」!

Tier與Layer

不知道你有沒有疑問?2-tier、3-tier、N-tier架構(gòu)模式為什么是CS架構(gòu)風格的實現(xiàn)?而不是分層架構(gòu)風格的實現(xiàn)?畢竟Tier與Layer都翻譯為「層」!

這里先說下Tier和Layer的區(qū)別!

網(wǎng)絡(luò)上有兩種解釋:

  • 一種解釋是,Tier是縱切,Layer是橫切
  • 另一種解釋是,Tier是物理層,Layer是邏輯層

先說第一種解釋,縱切和橫切是什么意思呢?看上面三層架構(gòu)圖,表現(xiàn)層、邏輯層、數(shù)據(jù)層由上至下排列,看起來好像是被刀橫向切過一樣,這就是橫切。縱切就是表現(xiàn)層、邏輯層、數(shù)據(jù)層由左至右排列,看起來好像是被刀縱向切過一樣。

很明顯,這個解釋說不通,架構(gòu)圖只是示意而已,組件如何擺放可能和個人習慣有關(guān)。上面的三層架構(gòu)圖來自wiki,它是一個橫切圖,但是它是3-tier!

相對的,第二種解釋就比較合理。Tier是物理層,Layer是邏輯層。上面的例子中,三層架構(gòu)的表現(xiàn)層、邏輯層、數(shù)據(jù)層都是可獨立部署的,也就是物理層。而Controller層,Service層,Model層等,是在一個應用中的,是邏輯劃分的,不能獨立部署。

維基百科在「多層架構(gòu)」里也間接支持了這個觀點:

In a 「logical multilayered architecture」 for an information system with an object-oriented design, the following four are the most common:Presentation layer,Application layer,Business layer,Data access layer
在面向?qū)ο笤O(shè)計的「邏輯分層架構(gòu)」中,系統(tǒng)一般被分為:表現(xiàn)層,應用層,業(yè)務層和數(shù)據(jù)訪問層

那我們?nèi)绾谓忉尅?-tier、3-tier、N-tier架構(gòu)模式是CS架構(gòu)風格的實現(xiàn)這個問題呢?」!

其實很簡單,2-tier是一個Client和Server進行通信!那么你可以這么看3-tier架構(gòu)模式:

  • 數(shù)據(jù)層相對于邏輯層來說,就是個Server,為邏輯層提供數(shù)據(jù)服務;邏輯層相對于數(shù)據(jù)層來說,就是個Client,請求數(shù)據(jù)層獲取數(shù)據(jù)
  • 邏輯層相對于表現(xiàn)層來說,就是個Server,為表現(xiàn)層提供服務;表現(xiàn)層相對于邏輯層來說,就是個Client,請求邏輯層處理相應邏輯

N-tier架構(gòu)模式類似,就不贅述了!

微妙關(guān)系

CS架構(gòu)風格和分層架構(gòu)風格其實關(guān)系比較微妙!

舉個簡單的例子,一般架構(gòu)設(shè)計時,會先設(shè)計邏輯視圖!比如Controller層,Service層和Model層。如果我新增了一個緩存層用來緩存Model數(shù)據(jù),那么請問這個緩存層是個Layer還是Tier?答案是不一定。如果你使用了redis來緩存數(shù)據(jù),那么緩存層就是個Tier。而如果你直接在系統(tǒng)里寫代碼實現(xiàn),那么就是Layer!

使用場景

CS架構(gòu)風格+分層架構(gòu)風格可以說是個萬金油組合!如果你無法確定該使用哪種架構(gòu)風格的時候,那么可以先使用CS架構(gòu)風格+分層架構(gòu)風格!

上面所提到的對架構(gòu)屬性的影響,也是加成的!即會提高「伸縮性」,「組件復用」,「可移植性」,「可維護性」,但是會更加的影響「性能」!

參考資料

  • 維基百科
  • Azure文檔
  • 《Architectural Styles and the Design of Network-based Software Architectures》Roy Thomas Fielding
  • 《恰如其分的軟件架構(gòu)》

總結(jié)

以上是生活随笔為你收集整理的架构风格:万金油CS与分层的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品无码AV | 激情五月婷婷小说 | 男女高潮网站 | 在线 色| 免费看黄色的视频 | 成人动漫av在线 | 黄色国产一区二区 | 久久99精品久久久久久水蜜桃 | av影院在线| 一区二区三区欧美 | 色偷偷综合网 | 国产日韩精品一区二区三区 | 日韩美女在线视频 | 亚洲精品h | 18xxxx日本| 男女啪啪毛片 | 国精产品99永久一区一区 | 在线观看免费成人 | 亚洲精品传媒 | 91日批| 久久久久久久极品内射 | 在线中文字幕网站 | 毛片久久久久久久 | 在线超碰av| 欧美三级精品 | 蜜臀少妇久久久久久久高潮 | 91少妇丨porny丨 | 免费 成 人 黄 色 | 色婷婷精品久久二区二区密 | 中文字幕天堂av | chinese麻豆新拍video | 影音先锋精品 | 亚洲国产成人精品一区二区三区 | 亚洲淫欲 | 99久久精品国产成人一区二区 | 美女野外找人搭讪啪啪 | 国产黄色精品视频 | 影音先锋国产资源 | 久久久www成人免费毛片 | 国产精品羞羞答答在线 | 国产一级黄色片子 | 中日韩男男gay无套 人人草人人干 | 男生把女生困困的视频 | 一二三四av | 91插插插插| 性开放耄耋老妇hd | 欧美成人久久久免费播放 | 天堂av中文字幕 | 激情久久一区 | 美女色网站 | 国产乱码精品一区二区三区中文 | 日韩成人在线观看视频 | 综合久久久久久久 | 日韩欧美在线中文字幕 | 国产成人精品免高潮在线观看 | 日韩成人精品在线观看 | 中文字幕性| 亚洲自拍偷拍一区 | 亚洲最大的黄色网 | 首尔之春在线观看 | 在线观看免费毛片 | 国产一区二区三区在线观看 | 久久久久中文字幕 | 亚洲伦理在线视频 | 69av在线视频 | 11一12免费毛片 | 黄色网页免费 | 麻豆免费网站 | 视频区小说区图片区 | 国产无遮掩 | 狠狠插影院 | 日韩大尺度视频 | 国产黄色激情视频 | 亚洲成人av电影在线 | 精品国产乱码久久久久久免费 | 成人h在线观看 | 假日游船| 善良的女邻居在线观看 | 亚洲免费黄色网址 | 日本国产高清 | 免费在线看黄色片 | 日本激情一区二区三区 | 日日夜夜伊人 | 伊人久久精品一区二区三区 | 国产成人精品久久二区二区 | 国产亚洲一区二区三区在线观看 | 6080亚洲精品一区二区 | 欧美日韩人妻一区二区 | 国产精品视频久久久久久久 | 蜜臀久久精品久久久久久酒店 | 国产日韩欧美在线观看视频 | 欧美成人免费网站 | 日产精品久久久久久久 | 爱爱免费网站 | 中国人妖和人妖做爰 | 成年人毛片| 乖女从小调教h尿便器小说 欧美韩一区二区 | 国产乱码一区二区三区在线观看 | 91视频黄|