奈學開發者社群分享:Java - 設計模式的7個設計原則

奈學教育發表於2020-09-28

因為設計模式就是基於這些原則的實現,所以很有必要了解這些原則,下面主要對物件導向程式設計的幾個原則進行簡單介紹。

  1、單一職責原則 ( SRP )

  英文全稱是Single Responsibility Principle,定義是一個類,應該只有一個引起它變化的原因。類變化的原因就是職責,如果一個類承擔的職責過多,就等於把這些職責耦合在一起了。一個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當發生變化時,設計會遭受到意想不到的破壞。而如果想要避免這種現象的發生,就要儘可能的遵守單一職責原則。此原則的核心就是解耦和增強內聚性。

  2、開閉原則 ( OCP )

  英文全稱是Open Close Principle,定義是軟體實體(包括類、模組

  、函式等)應該對於擴充套件時開放的,對於修改是封閉的。開閉原則是是物件導向設計中最重要的原則之一,其它很多的設計原則都是實現開閉原則的一種手段。

  3、里氏替換原則 ( LSP )

  英文全稱是Liskov Substitution Principle,是物件導向設計的基本原則之一。 定義是任何基類可以出現的地方,子類一定可以出現。LSP 是繼承複用的基石,只有當派生類可以替換掉基類,且軟體單位的功能不受到影響時,基類才能真正被複用,而派生類也能夠在基類的基礎上增加新的行為。里氏替換原則是對開閉原則的補充。實現開閉原則的關鍵步驟就是抽象化,而基類與子類的繼承關係就是抽象化的具體實現,所以里氏替換原則是對實現抽象化的具體步驟的規範。

   4、依賴倒置原則 ( DIP )

  英文全稱是Dependence Inversion Principle,這個原則是開閉原則的基礎,依賴倒置原則就是要求呼叫者和被呼叫者都依賴抽象,這樣兩者沒有直接的關聯和接觸,在變動的時候,一方的變動不會影響另一方的變動。依賴倒置強調了抽象的重要性,針對介面程式設計,依賴於抽象而不依賴於具體。

  5、介面隔離原則 ( ISP )

  英文全稱是Interface Segregation Principle,這個原則的意思是使用多個隔離的介面,比使用單個介面要好。目的就是降低類之間的耦合度,便於軟體升級和維護。

  6、最少知道原則(迪米特原則)

  一個實體應當儘量少地與其他實體之間發生相互作用,使得系統功能模組相對獨立。通俗地說就是不要和陌生人說話,即一個物件應對其他物件有儘可能少的瞭解。迪米特法則的初衷在於降低類之間的耦合。由於每個類儘量減少對其他類的依賴,因此,很容易使得系統的功能模組功能獨立,相互之間不存在(或很少有)依賴關係。

  7、合成/聚合複用(CARP)

  英文全稱是Composite Reuse Principle,合成/聚合複用原則經常又叫做合成複用原則。合成/聚合複用原則的潛臺詞是:我只是用你的方法,我們不一定是同類。繼承的耦合性更大,比如一個父類後來新增實現一個介面或者去掉一個介面,那子類可能會遭到毀滅性的編譯錯誤,但如果只是組合聚合,只是引用類的方法,就不會有這種巨大的風險,同時也實現了複用。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69976011/viewspace-2724876/,如需轉載,請註明出處,否則將追究法律責任。

相關文章