懂了設計模式,你就懂了物件導向分析和設計(ooa/d)的精要.編寫軟體的過程,面臨 == 耦合性、內聚性、維護性、可擴充套件性、重用性、靈活性== 等各方面的挑戰。
設計模式就是為了解決這些問題
程式設計時遵循的原則,各種設計模式的基礎
注意事項和細節
那麼問題來了,如何正確使用繼承?
答案:黎克特制替換原則
基本介紹
如果對每個型別 為 t1 的物件 o1,都有型別為 t2 的物件 o2,使得以 t1定義的所有程式 p 在所有的物件o1都代替成 o2時,程式p的行為沒有發生變化,那麼型別t2是型別t1的子型別。也就是,所有引用父類的地方必須能透明地使用其子類物件
在使用繼承時 ,遵循黎克特制替換原則,在子類中盡量不要重寫父類的方法
繼承實際上讓兩個類耦合性增強了,在適當情況下,可以通過聚合、組合、依賴 來解決問題
解決方法
類b 繼承 類a 並重寫父類方法,造成原有功能錯誤解決方法實際程式設計中,常常會重寫父類的方法完成新功能,這樣寫起來雖然簡單,但是整個繼承體系的復用性比較差,特別是執行多型比較頻繁的時候
原來的父類和子類都繼承乙個更通俗(抽象)的基類,原有的繼承關係去掉,採用依賴、聚合、組合等關係代替
設計模式七大原則
open closed principle ocp 最基礎的原則,對擴充套件開放,對修改關閉強調的是用抽象構建框架,用實現擴充套件細節,可以提高軟體系統的可復用性和可維護性 dependence inversion principle,dip 程式要依賴於抽象介面,不要依賴於具體實現。即面向介面程式...
設計模式七大原則
編寫軟體過程中,程式設計師面臨著來自耦合性,內聚性以及可維護性,可擴充套件性,重用性,靈活性等多方面的挑戰,設計模式是為了讓程式具有更好以下特性 1 重用性 即 相同功能的 不用多次編寫 3 可擴充套件性 即 當需要增加新的功能時,非常的方便,稱為可維護 4 可靠性 即 當我們增加新的功能後,對原來...
設計模式七大原則
單一職責原則 single responsibility principle,簡稱srp 黎克特制替換原則 liskov substitution principle,簡稱lsp 依賴倒置原則 dependence inversion principle,簡稱dip 介面隔離原則 inte ce s...