設計模式學習四:里氏替換原則

介紹

問題思考:
1)繼承包含這樣一層含義:父類中凡是已經實現好的方法,實際上是在設定規範和契約,雖然它不強制要求所有的子類必須繼承這些契約,但是如果子類對這些已經實現的方法任意修改,就會對整個繼承體系造成破壞。
2)繼承在給程序設計帶來便利的同時,也帶來了弊端。比如使用繼承會給程序帶來侵入性,程序的可移植性降低,增加對象間的耦合性,如果一個類被其他的類所繼承,則當這個類需要修改時,必須考慮到所有的子類,並且父類修改後,所有涉及到子類的功能都有可能產生故障
3)問題提出:在編程中,如何正確使用繼承=》里氏替換原則

里氏替換原則
1)如果對每個類型爲T1的對象o1,都有類型爲T2的對象o2,使得以T1定義的所有程序P在所有的對象o1都代換成o2時,程序P的行爲沒有發生變化,那麼類型T2是類型T1的子類型,換句話說,所有引用基類的地方必須能透明地使用其子類的對象
2)在使用繼承時。遵循里氏替換原則,在子類中儘量不要重寫父類的方法
3)里氏替換原則告訴我們,繼承實際上讓兩個類耦合性增強了,在適當的情況下,可以通過聚合、組合、依賴來解決問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章