常見的面向對象設計原則
一、單一職責原則SRP(Single Responsibility Principle)
一個類應該僅有一個引起它變化的原因。防止多個變化原因互相干擾,造成上層調用出錯。
二、開放-關閉原則OCP(Open-Closed Principle)
一個類應該對擴展開放,對修改關閉。通過合理抽象,分離出變化與不變化的部分,爲變化的部分預留可擴展的方式。
三、里氏替換原則LSP(Liskov Substitution Principle)
子類型必須能夠替換掉它們的父類型。防止多態造成隱藏錯誤。
四、依賴倒置原則DIP(Dependence Inversion Principle)
要依賴於抽象,不要依賴於具體類。高,低層模塊都依賴於抽象,不是具體實現類。高、低層模塊的需求決定抽象的層次和實現。
五、接口隔離原則ISP(Interface Segregation Principle)
不應該強迫客戶依賴於他們不用的方法。通過代碼分離或使用委託來分離接口,在支持多重繼承的語言中,可以採用多重繼承的方式進行分離,防止對客戶沒用的接口對使用造成污染。
六、最少知識原則LKP(Least Knowledge Principle)
應該儘量減少對象之間的交互,對象只和自已的朋友交互,從而鬆散類之間的耦合。
七、面向接口編程(Program to an interface, not an implementation)
面向對象編程中的一種思想,即以抽象的東西去設計整個系統中的規則和交互,而不是具體實現的事物。
八、優先使用組合,而非繼承
繼承會破壞封裝性,也無法實現運行期的行爲控制。
學習記錄,後續有時間再豐富具體內容。也歡迎大家討論。