對開閉原則的一些理解

2021-09-01 04:25:01 字數 734 閱讀 2099

[size=large]

從開始學習j2ee開始,就一再地被灌輸開閉原則多麼核心多麼重要,編碼也兩年了,回顧一下眾多的設計模式,驀然發現開閉原則幾乎是所有設計模式的抽象總結 :o 。

一、依賴倒置模式(dependence inversion principle)就是要依賴於抽象,不要依賴於具體。簡單的說就是要求對抽象進行程式設計,不要對實現進行程式設計,這樣就降低了客戶與實現模組間的耦合。

1、高層模組不應該依賴低層模組,兩者都應該依賴於抽象(抽象類或介面)

2、抽象(抽象類或介面)不應該依賴於細節(具體實現類)

3、細節(具體實現類)應該依賴抽象

抽象:即抽象類或介面,兩者是不能夠例項化的。

細節:即具體的實現類,實現介面或者繼承抽象類所產生的類,兩者可以通過關鍵字new直接被例項化

將實現方法中使用的物件抽象出來,用介面來偽程式設計,再用實現類來實現介面,如果將來業務有改變,則不對現存的實現類進行修改和補充,而是重新建立一套實現類來繼承相同的介面。

當然,介面抽象也不能太過臃腫,首先要有單一職責原則,要求的是類和介面職責單一,注重的是職責,是業務邏輯上的劃分。然後要有介面隔離原則要求的是介面的方法盡量少,盡量有用(針對乙個模組)。

類間解耦,弱耦合,只有弱耦合了以後(迪公尺特法則),類的復用性才可以提高。

物件a、物件b、物件c,其中a做的事情涉及到b,但是a不要有涉及到b的方法,a和b涉及的部分放在c中來做。

乙個物件應該對其他物件了解最少。

[/size]

開閉原則的理解

開閉原則,軟體實體應當對擴充套件開放,對修改關閉 是要達到乙個狀態,而要達到這個狀態,就需要在寫 的過程中要想到和做到。提倡開閉原則,其目的是我們在編寫 的時候就要考慮到每個功能模組的潛在的變化的可能性,盡可能的寫簡短單一功能並且復用性強的模組。只有在寫 的時候注意到了這些,在重構或者變更的時候,才...

對開發準則的一些心得

2018 7 4 10 08 24 星期三 有些感悟,一些東西如果設定一些準則,他可能規定了你至少要做哪些事情 你最好這樣去做 根據準則去執行,就會減少不必要的遺漏 對莫能兩可的事情快速做出決定,不再糾結 如果心裡沒有乙個標準,每次開發都會覺得這樣寫也可以那樣寫也可以,左右為難,最後感覺只要能實現當...

對開源軟體的一些思考

不再刻意只關注開源軟體了。軟體都是人類的智慧型 努力的結晶,不管是開源還是閉源。當然如果是尋求跨平台的軟體 其中開源軟體中的跨平台軟體居多 在幾個作業系統上都使用同乙個軟體也未嘗不可,這樣一定程度上也可以節約學習使用軟體的學習成本。開源軟體的存在並不一定是為了替代商業軟體,可以是當由於某種原因不能使...