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

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
推荐阅读
三十種食用菌栽培技術(這兩種菌液的制作要掌握好)
三十種食用菌栽培技術(這兩種菌液的制作要掌握好)
  種植蔬菜需要大量的肥料,這點相信大家都明白,但是現成的農家肥不會有很多,一些小夥伴家裡甚至連一丁點現成的農家肥都沒有,這種情況下,我們就需要自己進行發酵肥料,而發酵肥料就需要發酵劑,使用過發酵劑的小夥伴肯定都有這樣的體會,現成的發酵劑都比較貴,如果全程使用購買回來的發酵劑,那麼成本就顯得比較高了。      下面給大家分享兩種非常不錯的發酵菌液,隻需要簡...
2026-07-03
紅旗l5跟勞斯萊斯路口相遇(勞斯萊斯街頭逆行)
紅旗l5跟勞斯萊斯路口相遇(勞斯萊斯街頭逆行)
  在馬路上逆行是非常危險的行為,因為每一條車道它有一個固定的走向,車子都隻能按照一個方向行駛,如果馬路上出現了一輛逆行的汽車,就會給其他車主帶來麻煩,也會擾亂交通秩序,所以交通部門對于逆行的車輛也會進行嚴查。勞斯萊斯街頭逆行,紅旗L5絲毫不讓,網友:碰上硬茬了。      可是有一些車主在開車的時候卻非常不注意遵守交通規則,哪怕是在一些車流量比較大的路段,...
2026-07-03
乒乓球孔令輝技術特點分析(淺談孔令輝的乒乓球技術)
乒乓球孔令輝技術特點分析(淺談孔令輝的乒乓球技術)
     和其他運動員不同,我們講孔令輝的技術時要先說缺點再說優點,而不是反過來。因為别人都是技術全面特長突出無明顯漏洞,到小輝這則是無漏洞突出技術全面無明顯特長。但總而言之,孔令輝的技術是有問題的,問題在哪?在球的質量。   小輝的球是個神馬質量呢?   我們來做個比較,下面的比較對象絕對都是和他一批的橫拍選手,所以不會弄出跟馬龍張繼科比的情況,放心。  ...
2026-07-03
每個人的心裡都有不一樣的風景(現實不似你所見)
每個人的心裡都有不一樣的風景(現實不似你所見)
  《楚門的世界》是由彼得·威爾執導,金·凱瑞、勞拉·琳妮等主演的電影,于1998年6月1日在美國上映。1999年,楚門的扮演者金·凱瑞憑借這部影片獲得第56屆美國金球獎最佳男主角。該片還獲得了第71屆奧斯卡最佳原創劇本獎提名,盡管無緣奧斯卡,這部影片還是給人留下了深刻印象。      影片主角是一個普通的保險經紀人,名叫楚門,就像大部分人一樣,楚門按部就班...
2026-07-03
abb中的io控制指令有哪些(ABB停止指令StopExitBreak的區别)
abb中的io控制指令有哪些(ABB停止指令StopExitBreak的區别)
  ABB工業機器人STOP指令用于停止程序執行。在Stop指令就緒之前,将完成當前執行的所有移動。該指令的使用格式為:   Stop [ \NoRegain ] | [ \AllMoveTasks ];   如果STOP指令使用變量\NoRegain,若機械臂和外軸已遠離停止位置,則不會再返回;如果不使用變量\NoRegain,若機械臂和外軸已逐漸遠離停止...
2026-07-03
Copyright 2023-2026 - www.tftnews.com All Rights Reserved