里氏替換原則(Liskov Substitution Principle,簡稱LSP): 子類可以替換父類 繼承有一些優點: 任何基類可以出現的地方,子類一定可以出現。里氏替換原則是繼承復用的基石,只有當衍生類可以替換基類,軟件單位的功能不受到影響時,即基類隨便怎么改動子類都不 ...
一 里氏替換原則 如果說實現開閉原則的關鍵步驟就是抽象化,那么基類 父類 和子類的繼承關系就是抽象化的具體實現,所以里氏替換原則就是對實現抽象化的具體步驟的規范。即:子類可以擴展基類 父類 的功能,但不能改變父類原有的功能。 定義:一個軟件實體如果適用一個父類的話,那一定是適用於其子類,所有引用父類的地方必須能透明地使用其子類的對象,子類對象能夠替換父類對象,而程序邏輯不變。 里氏替換原則最核心得 ...
2021-06-10 11:10 2 354 推薦指數:
里氏替換原則(Liskov Substitution Principle,簡稱LSP): 子類可以替換父類 繼承有一些優點: 任何基類可以出現的地方,子類一定可以出現。里氏替換原則是繼承復用的基石,只有當衍生類可以替換基類,軟件單位的功能不受到影響時,即基類隨便怎么改動子類都不 ...
里氏替換原則強調的是設計和實現要依賴於抽象而非具體;子類只能去擴展基類,而不是隱藏或者覆蓋基類,它包含4層含義. 一、里氏替換4原則 1、子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法 子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法,父類中凡是已經實現好的方法 ...
1 里氏替換原則定義 Liskov於1987年提出了一個關於繼承的原則“Inheritance should ensure that any property proved about supertype objects also holds for subtype objects.”——“繼承 ...
前言 上一節中我們介紹了,依賴倒置,依賴倒置利用抽象的穩定性來架構我們的系統,是我們經常能遇到的一種原則,比如說面向接口編程。 這一節中,我們來說說里氏替換原則,這個原則其實非常非常的簡單,其實與依賴倒置相結合來看,就是希望我們用抽象的方法來構建項目而非具體的實現,里氏替換原則就是推薦 ...
OO中繼承的包含一層這樣的含義:父類中凡是已經實現好的方法,實際上是在設定規范的契約,雖然它不強制要求所有的父類遵循這些契約,但是如果子類對這些已經實現的方法任意修改,就會對整個繼承體系造成破壞。 繼承在給程序設計帶來便利的同時,也帶來了弊端。比如使用繼承會給程序帶入侵入性,程序 ...
我們以汽車分類管理程序為例來介紹合成復用原則的應用。 分析:汽車按“動力源”划分可分為汽油汽車、電動汽車等;按“顏色”划分可分為白色汽車、黑色汽車和紅色汽車等。如果同時考慮這兩種分類,其組合就很多。如圖所示是用繼淨:關系實現的汽車分類的類圖。 從圖中可以看出 ...
一、概念 合成/聚合復用原則是在一個新的對象里面使用一些已有的對象,使之成為新對象的一部分;新的對象通過向這些對象的委派達到復用已有功能的目的。 概括:要盡量使用合成/聚合,盡量不要使用繼承。 二、依賴和關聯 依賴是類與類之間的連接,表示一個類依賴於另外一個類的定義。依賴關系僅僅描述 ...
里氏替換原則 前言:今天是3.15,一個特殊的日子。不知道還會曝光出多少家不良企業,更不知道潛藏的未被曝光的企業數量之巨有沒有超出我的想象力。每年都會爆出一些諸如“塑化劑、毒膠囊、問題奶、速成雞”等等新的食品安全關鍵詞,走進餐館,走進食堂,走進超市,還真不知道什么東西敢碰。新 ...