首页
/
每日頭條
/
圖文
/
soa架構和分布式架構區别
soa架構和分布式架構區别
更新时间:2026-04-28 15:28:27

soa架構和分布式架構區别(十年架構師分享)1

模塊

模塊就是從邏輯上将系統分解為更細微的部分, 分而治之, 複雜問題拆解為若幹簡單問題, 逐個解決。

耦合主要描述模塊之間的關系, 内聚主要描述模塊内部。 模塊的粒度可大可小, 可以是函數, 類, 功能塊等等。

soa架構和分布式架構區别(十年架構師分享)2

耦合

模塊之間存在依賴, 導緻改動可能會互相影響, 關系越緊密, 耦合越強, 模塊獨立性越差。

比如模塊A直接操作了模塊B中數據, 則視為強耦合, 若A隻是通過數據與模塊B交互, 則視為弱耦合。

獨立的模塊便于擴展, 維護, 寫單元測試, 如果模塊之間重重依賴, 會極大降低開發效率。

soa架構和分布式架構區别(十年架構師分享)3

内聚

模塊内部的元素, 關聯性越強, 則内聚越高, 模塊單一性更強。 一個模塊應當盡可能獨立完成某個功能,

如果有各種場景需要被引入到當前模塊, 代碼質量将變得非常脆弱, 這種情況建議拆分為多個模塊。

低内聚的模塊代碼, 不管是維護, 擴展還是重構都相當麻煩, 難以下手。

soa架構和分布式架構區别(十年架構師分享)4

接口設計原則

好的接口應當滿足設計模式六大原則, 很多設計模式, 框架都是基于高内聚低耦合這個出發點的。

  • 單一職責原則:一個類隻負責一個功能領域中的相應職責。
  • 開閉原則:一個軟件實體應當對擴展開放,對修改關閉。
  • 裡氏代換原則:所有引用基類(父類)的地方必須能透明地使用其子類的對象。
  • 依賴倒轉原則:抽象不應該依賴于細節, 細節應當依賴于抽象。 換言之, 要針對接口編程, 而不是針對實現編程。
  • 接口隔離原則:使用多個專門的接口, 而不使用單一的總接口, 即客戶端不應該依賴那些它不需要的接口。
  • 迪米特法則: 一個軟件實體應當盡可能少地與其他實體發生相互作用, 例如外觀模式, 對外暴露統一接口。

soa架構和分布式架構區别(十年架構師分享)5

舉幾個栗子

外觀模式

為系統中多個子系統提供一緻的對外調用, 對客戶端隐藏子系統細節, 降低其與子系統的耦合。

soa架構和分布式架構區别(十年架構師分享)6

橋接模式

JDBC中的把面向廠商的接口(Driver)和面向使用者的API(DriverManager)做了拆分隔離。

// 開發者隻需要關注JDBC API, 無需關注不同數據庫Driver接口實現 Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, username, password);

soa架構和分布式架構區别(十年架構師分享)7

橋接模式參考:橋接模式(Bridge)

适配器模式

引入第三方庫(hibernate, log4j), 不應該直接在代碼中繼承或者使用其實體類。

需要抽出上層統一接口, 然後增加實現類, 對外暴露接口。

// 代碼與log4j強耦合, 不推薦 org.apache.log4j.Logger.getRootLogger().info("info"); // 底層可以随意更換log框架 FRLoggerFactory.getLogger().info("info");

soa架構和分布式架構區别(十年架構師分享)8

end:如果你覺得本文對你有幫助的話,記得點贊轉發,你的支持就是我更新動力。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
利用三星手機的bixby功能找手機(消息稱三星将向第三方開發者開放BixBy助手)
利用三星手機的bixby功能找手機(消息稱三星将向第三方開發者開放BixBy助手)
  IT之家11月2日消息 三星在今年8月發布了一款智能音箱Galaxy Home,内置了三星自家的Bixby助手。在這一市場上,亞馬遜已經以自家的Echo系列音箱,以及Alexa助手占據着主導,這不由得讓人擔心後發的三星前景如何。不過,華爾街日報的一個新消息似乎展示了Galaxy Home和Bixby的一條路徑。      消息稱,三星将在下周的三星開發者...
2026-04-28
十一月份打雷下雨是什麼預兆(冬天十一月打雷是什麼征兆)
十一月份打雷下雨是什麼預兆(冬天十一月打雷是什麼征兆)
  在人們看來夏天打雷是比較正常的一個現象,但冬天打雷卻似乎比較少見。今日清晨,湖南、浙江等地出現打冬雷現象,那冬天(十一月)打雷是什麼征兆?老話怎麼講呢?      冬天打雷其實并沒有什麼征兆,不僅今年冬天出現打雷,在2021年2月份的時候也出現冬天打雷的現象。冬天打雷的原因分析如下:   1.冬季打雷說明空氣濕度大,容易形成雨雪,故有“冬天打雷雷打雪”之...
2026-04-28
爆炒鴨腎怎麼炒好吃(爆炒鴨腎健脾養胃)
爆炒鴨腎怎麼炒好吃(爆炒鴨腎健脾養胃)
  鴨腎可健胃養脾,補鐵益氣。爆炒鴨腎,方法簡單,味道卻很贊!香噴噴的一盤,保證讓你口水流不停!   食材:鴨腎,青椒,幹辣椒,姜絲,料酒,醬油,蚝油,鹽适量,鴨腎洗淨,一個鴨腎切成四份,先切成平衡的刀紋,不要切斷   做法:   在垂直處再平衡着切出刀紋,垂直着切的刀紋每三刀就切斷,腰花就打好了      幹辣椒用清水浸泡,小朋友要用紅椒,和青椒滾刀切成小...
2026-04-28
與生活相關的關于茶的故事(與茶有關的故事)
與生活相關的關于茶的故事(與茶有關的故事)
  茶,是人面對自然态度,也是面内心的态度。但歸根究底,喝茶隻是一種生活方式。與友對坐,除了欣喜何以為繼?寒夜獨處,除了孤獨以何為伴?塵世之間,除了匆忙何以安心?……隻說一句:來,喝茶吧,喝茶吧…   專門記錄茶的好電影很少,想來茶天生本就是一個好的配角吧,隻以靜默作陪。且讓我們遇見她,在這最美的時刻…   ① 尋訪千利休“您心裡,有沒有念念不忘的人”   ...
2026-04-28
賽爾号本周最新活動(賽爾号6月29日活動預告公開)
賽爾号本周最新活動(賽爾号6月29日活動預告公開)
  賽爾号6月29日的相關預告在近日公開了,本次不僅僅有大暗黑天的最後一位長老登場,更有X戰隊合體進化後的王系精靈實裝,一起來看看相關的預告活動吧。      常長老艾夏拉降臨   黑色的能量,席卷整個宇宙。遠古的封印,此刻終于解封。大暗黑天,八王齊現!她既是大暗黑天最後一員,她又是天蛇星的末代女王。此刻,她将撕裂整個空間。本周主打精靈,怎麼說呢,除了屬性是...
2026-04-28
Copyright 2023-2026 - www.tftnews.com All Rights Reserved