首页
/
每日頭條
/
圖文
/
soa架構和分布式架構區别
soa架構和分布式架構區别
更新时间:2026-03-01 11:34:19

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
推荐阅读
王一博同款wink(還和王一博同框)
王一博同款wink(還和王一博同框)
  提前說好哦!今天是愚人節開的玩笑哦,做人最重要是開心嘛~    Joy One  泰國時間今天淩晨12點半,Bright亮哥發了一條推特,和Win赢仔明目張膽秀恩愛!!      雖然沒多久就删掉了!可是嘿嘿嘿,泰妃速度夠快,順手就截圖了,哈哈!别忘了,互聯網是有記憶的。話說你們這樣秀恩愛好嗎?好嗎?真的好嗎?    Joy Two  今天,#Brigh...
2026-03-01
楊潔為何後悔拍西遊(三次邀請王伯昭)
楊潔為何後悔拍西遊(三次邀請王伯昭)
  在82版西遊記中,要說誰是最貴的演員,估計很多人會說是六小齡童,也有人可能會說是馬蘭,也就是飾演唐僧母親的演員,當年千裡送馬蘭的故事,還不時被人說起,在西遊記裡最貴的演員其實是飾演小白龍的演員王伯昭,總共出演了3集,片酬卻高達1500,當年劇組經費緊張,各種省吃儉用,按照楊潔導演的性格,肯定是不會花這麼多錢請王伯昭的,那到底是誰請的呢?      當年在...
2026-03-01
曆史上洛陽地區下轄多少縣(1952年河南洛陽下轄11個縣)
曆史上洛陽地區下轄多少縣(1952年河南洛陽下轄11個縣)
  河南洛陽是我國的四大古都之一,建都時間算的話是我國的第一大古都,長期是河南府的駐地。其實河南省名稱的确定就是舊來自于洛陽河南府,不過奇怪的是洛陽從來沒有做過河南省的省會,可能跟地理位置有關系,實在太偏西了。發展到如今洛陽僅下轄7個縣,不過仍然是中西部地區非省會地級市 GDP第1名,而在1952年河南洛陽下轄11個縣,廣大的豫西地區都是洛陽專區管轄,曾經鼎...
2026-03-01
六級寫作高級替換詞彙(四六級寫作必背)
六級寫作高級替換詞彙(四六級寫作必背)
  各位備考四六級的童鞋們,2016年6月的四六級考試馬上就要到來了,你們的寫作都準備得如何呢?是否還是在練習寫作和翻譯時,一想寫“喜歡”就用“like”? 一想到“重要”就要寫“important”呢?快來看看小編為大家準備的以下寫作常用詞語高級替換吧!建議大家做好筆記,反複不斷地背誦,才能在考試中用起來哦!      重要的   (important) ...
2026-03-01
俄碧有黑點的值不值得買(實戰經驗您真的了解所有俄碧的礦嗎)
俄碧有黑點的值不值得買(實戰經驗您真的了解所有俄碧的礦嗎)
  市場碧玉的出産地非常多,例如新疆和田、俄羅斯、巴基斯坦、加拿大、新西蘭、澳大利亞、迪拜、瑪納斯等。其中占據市場主流當屬俄羅斯碧玉,那麼,您真的分清楚俄羅斯碧玉每一種綠原料的礦口嗎?   接下來,聯盟将與大家分享相關知識:   7号礦碧玉   首先咱們先從老料子,也就是7号礦開始。7号礦,大家應該都不陌生吧。在俄羅斯碧玉當中,有1-32号礦,其中7号礦是最...
2026-03-01
Copyright 2023-2026 - www.tftnews.com All Rights Reserved