只有深刻理解審計原則,自然而然就能寫出設計模式。
通過refactor(重構)得到設計模式。——現在還是不是很理解
1、針對介面程式設計,而不是針對實現程式設計
2、優先使用物件組合,而不是類繼承
3、封裝變化點
1、針對介面程式設計,而不是針對實現程式設計
客戶(程式)無需知道所使用物件的特定型別,只需要知道物件擁有客戶所期望的介面。
2、優先使用物件組合,而不是類繼承
類繼承通常為「白箱復用」,物件組合通常為「黑箱復用」。繼承在某種程度上破壞了封裝性,子類父類耦合度高;而物件組合則只要求被組合的物件具有良好定義的介面,耦合度低。
3、封裝變化點
使用封裝來建立物件之間的分界層,讓設計者可以在分界層的一側進行修改,而不會對另一側產生不良的影響,從而實現層次之間的松耦合。
幾條更具體的設計原則:
1、單一職責原則(srp)
乙個類應該僅有乙個引起它變化的原因
2、開放封閉原則(ocp)
類模組應該是可擴充套件的,但是不可修改(對擴充套件開放,對更改封閉)。
3、liskov替換原則(lsp)
子類必須能夠替換他們的基類
4、依賴倒置原則(dip)
抽象不應該依賴於實現細節,實現細節應該依賴於抽象。
note:抽象是對具體物件的總結(抽象)。相對來說,抽象變化頻率是慢的,具體物件的變化頻率是快的。
-高層模組不應該依賴於低層模組,兩者都應該依賴於抽象。
-抽象不應該依賴於現實細節,現實細節應該依賴於抽象。
5、介面隔離原則(isp)
不應該強迫客戶程式依賴於他們不實用的方法。
物件導向設計 設計原則
職責單一 例如乙個類的只能負責單一的職責 開放 封閉原則 對擴充套件的開放,對修改的封閉。用新的類處理問題,不去修改現有類 liscov替換原則 子類可以替換父類 在沒有過載方法的情況下 依賴倒置原則 依賴介面,不要依賴具體實現。針對介面程式設計,不針對實現程式設計 緊耦合 類似於電腦中可插拔 更換...
物件導向設計的設計原則
物件導向的設計原則包括 開閉原則 單一職責原則 李氏替換原則 介面隔離原則 迪公尺特原則以及合成復用原則,其中的開閉原則是所有其他原則的最終要實現的目標,其他的原則是架構設計的基本方法的指導。這些原則,都不是相互孤立的,而是相互關聯,相互合作的,好的架構裡面往往能看到好幾條設計原則的影子。我們在設計...
物件導向的設計原則 類設計原則
物件導向設計中,如何通過很小的設計改變就可以應對設計需求的變化,這是令設計者極為關注的問題。為此不少oo先驅提出了很多有關物件導向的設計原則用於指導oo的設計和開發。下面是幾條與類設計相關的設計原則。1.開閉原則 the open closed principle ocp 乙個模組在擴充套件性方面應...