物件導向設計原則(1):依賴倒置原則(dip)
高層模組(穩定)不應該依賴於底層模組(變化),二者都應該依賴於抽象(穩定)。
抽象(穩定)不應該依賴與實現細節(變化),實現細節應該依賴於抽象(穩定)
物件導向設計原則(2):開放封閉原則(ocp)
對擴充套件開放,對更改封閉。
類模組應該是可擴充套件的,但是不可修改。
物件導向設計原則(3):單一職責原則(srp)
乙個類應該僅有乙個引起他變化的原因。
變化的方向隱含著類的責任。
物件導向設計原則(4):liskov替換原則(lsp)
子類必須能夠替換他們的基類(is-a)。
繼承表達型別抽象。
物件導向設計原則(5):介面隔離原則(isp)
不應該強迫客戶程式依賴不用的方法。
介面應該小而完備。
物件導向設計原則(6):優先使用物件組合,而不是繼承
類繼承通常為「白箱復用」,物件組合通常為「黑箱復用」。
繼承在某種程度上破壞了封裝性,子類父類耦合度高。而物件組合則只要求被組合的物件具有良好定義的介面,耦合度低。
物件導向設計原則(7):封裝變化點
使用封裝來建立物件之間的分界層,讓設計者可以在分界層的一側進行修改,而不會對另一側產生不良影響,從而實現層次間的松耦合。
物件導向設計原則(8):針對介面程式設計,而不是針對實現程式設計
不將變數型別宣告為某乙個特定的具體類,而是宣告為某乙個介面。
客戶程式無需獲知物件的具體型別,只需要知道物件所具有的介面。
減少系統中各部分的依賴關係,從而實現「高內聚,松耦合」的型別設計方案。
設計模式 八大設計原則
1.依賴倒置原則 dip 1 高層模組 穩定 不應該依賴於低層模組 變化 二者都應該依賴於抽象 穩定 2 抽象 穩定 不應該依賴於實現細節 變化 實現細節應該依賴於抽象 穩定 這裡 抽象 指的是抽象基類,實現細節 是指子類,低層模組繼承於抽象類,抽象類為高層模組提供低層模組的介面。2.開放封閉原則 ...
c mysql介面設計模式 八大設計模式
八大設計模式 單例模式 工廠模式 註冊模式 介面卡模式 策略模式 觀察者模式 原型模式 裝飾器模式 單例模式解決的是如何在整個專案中建立唯一物件例項的問題,工廠模式解決的是如何不通過new建立例項物件的方法。單例模式 instance必須宣告為靜態的私有變數 建構函式和析構函式必須宣告為私有,防止外...
php八大設計模式之工廠模式
簡單點來說,就是用到什麼類,就去例項化對應的類。比如 php 可能連線 mysql,可能連線 sqlserver,也可能是 oracle 資料庫,可以動態的去鏈結。書籍來,看實際 比如我們在 like 目錄下有一些鏈結資料庫的類 like mysql.php class mysql like ora...