設計原則-里氏代換原則
里氏代換原則的嚴格表達是:
如果對每一個型別為T1的物件O1,使得以T1定義的所有程式P在所有的物件o1都代換成o2,那麼型別T2是型別T1的子型別。
里氏代換原則是繼承複用的基石。只有當衍生類可以替換掉基類,軟體單位的功能不會受到影響時,基類才能真正被複用,而衍生類也才能在基類的基礎上增加新的行為。
相關推薦
Java設計模式——里氏代換原則
一、什麼是里氏代換原則? 一個軟體實體如果使用的是一個基類的話,那麼一定適用於其子類,而且它根本不能察覺出基類物件和子類物件的區別。比如,假設有兩個類,一個是Base類,另一個是Derived類,並且Derived類是Base類的子類。那麼一個方法如果可以接受基類物件Bas
設計模式——里氏代換原則
第六章 里氏代換原則 里氏代換原則:子型別必須能夠替換掉它們的父型別。即,一個軟體實體如果使用的是一個父類的話,那麼一定適用於其子類,而且它覺察不出父類物件和子類物件的區別。也就是說,在軟體裡面,把父類替換成它的子類,程式的行為沒有變化。正是由於里氏代換原則的存
設計原則-里氏代換原則
一,什麼里氏代換原則 里氏代換原則的嚴格表達是: 如果對每一個型別為T1的物件O1,使得以T1定義的所有程式P在所有的物件o1都代換成o2,那麼型別T2是型別T1的子型別。 里氏代換原則是繼承複用的基石。只有當衍生類可以替換掉基類,軟體單位的功能不會受到影響時,
軟體架構與模式(依賴注入 控制反轉 依賴倒置原則 開閉原則 單一職責原則 介面隔離原則 里氏代換原則)
名詞解釋: 依賴: 一個獨立元素的變化會影響到相關的元素 派生: 一個類是由其他類衍生出的,子類繼承了基類的結構(屬性的名詞和型別)方法 抽象: 去掉每個不重要的細節,專
依賴倒轉原則/里氏代換原則
1 抽象不應該依賴細節,細節應該依賴於抽象。高層模組不應該依賴底層模組,兩個都應該依賴抽象。 就是針對介面程式設計,不要對實先程式設計。 就好比,主機板,cpu,硬碟都是針對介面設計的,如果針對實習設計,記憶體就要對應到具體的某個品牌的主機板,就會出現 記憶體換了,主機板
面向物件原則--里氏代換原則
里氏代換原則(Liskov Substitution Principle LSP)面向物件設計的基本原則之一。 里氏代換原則中說,任何基類可以出現的地方,子類一定可以出現。 LSP是繼承複用的基石,只有
面向物件設計原則實踐:之四.里氏代換原則
五、里氏代換原則(LSP--Liskov Substitution Principle) 1. 定義 a). 如果對每一個型別為S的物件o1,都有型別為T的物件o2, 使得以T定義的所有程式P在所有的物件o1都代換成o2時,程式P的行為沒有變化, 那麼型別S是型別T的子型別。 b
面向物件設計原則之里氏代換原則
例如有兩個類,一個類為BaseClass,另一個是SubClass類,並且SubClass類是BaseClass類的子類,那麼一個方法如果可以接受一個BaseClass型別的基類物件base的話,如:method1(base),那麼它必然可以接受一個BaseClass型別的子類物件sub,meth
設計原則---里氏替換原則
本文參考自設計模式之禪(第二版)第二章 1.1 愛恨糾葛的父子關係 在面向物件的語言中,繼承是必不可少的、非常優秀的語言機制,它有如下優點: 程式碼共享,減少建立類的工作量,每個子類都擁有父類的方法和屬性; 提高程式碼的重用性; 子類可以形似父
過載和重寫,里氏代換原則詳解
方法過載是指同一個類中的多個方法具有相同的名字,但這些方法具有不同的引數列表,即引數的數量或引數型別不能完全相同 方法重寫是存在子父類之間的,子類定義的方法與父類中的方法具有相同的方法名字,相同的引數表和相同的返回型別 &n
里氏代換原則(Liskov Substitution Principle、LSP)
一、概念 氏代換原則中說,任何基類可以出現的地方,子類一定可以出現。 LSP是繼承複用的基石,只有當衍生類可以替換掉基類,軟體單位的功能不受到影響時,基類才能真正被複用,而衍生類也能夠在基類的基礎上增加新的行為。里氏代換原則是對“開-閉”原則的補充。實現“開-閉”原則的關鍵步驟就是抽象化。而
JAVA模式學習:里氏代換原則(一)
里氏代換原則(Liskov Substition Principle) 里氏代換原則(LSP)的準確描述:如果對每一個型別為T1的物件o1,都有型別為T2的物件o2,使得T1定義的所有程式p在所有物件o1都代換成o2的時候,程式p的行為沒有變化,那麼型別T2是型別T1的子
設計模式六大原則:里氏替換原則(五)
里氏代換原則是由麻省理工學院(MIT)電腦科學實驗室的Liskov女士,在1987年的OOPSLA大會上發表的一篇文章《Data Abstraction and Hierarchy》裡面提出來的,主要闡述了有關繼承的一些原則,也就是什麼時候應該使用繼承,什麼
面向物件設計原則--里氏替換原則(LSP)和依賴倒置原則(DIP)
面向物件設計原則–里氏替換原則(LSP)和依賴倒置原則(DIP) tags:設計模式 LSP–inheritance should ensure that any property prove
里氏代換原則——及之我見
第7章 里氏代換原則(LSP) 里氏代換原則 我感覺就是一句話,簡單的說就是 子型別必須能夠替換他們的父型別。就這麼簡單 面向物件設計的重要原則是建立抽象化,並且從抽象化匯出具體化。具體化可以給出不同的版本,每個版本都給出不同的實現。 從抽象化到具體化的匯出要是用繼承關係
設計模式原則——里氏替換原則
里氏替換原則(Liskov Substitution Principle) 定義1:如果對每一個型別為 T1 的物件 o1,都有型別為 T2 的物件 o2,使得以 T1 定義的所有程式 P 在所有的物件 o1 都代換成 o2 時,程式 P 的行為沒有發生變化,那麼型別 T2
里氏代換原則C#詳解
看了一大堆的資料講解關於里氏代換原則,在這裡我想分享給大家。 下面這段話來自百度百科,是這麼解釋里氏代換原則的: 里氏代換原則(Liskov Substitution Principle LSP)是面向物件設計的基本原則之一。 里氏代換原則中說,任何基類可以出現的地方,子
java設計原則--里氏替換原則
JAVA設計原則–里氏替換原則(LSP原則) 為什麼要用里氏替換原則?: 為了優化繼承所帶來的缺點,使得繼承的優點發揮到最大,而同時減少缺點帶來的麻煩。 繼承的優缺點: 優點: 1. 程式碼共享,減少建立類的工作量,每個子類都擁有父類的屬性和方
里氏代換原則(Liskov Substitution Principle)
作用 它指導我們如何正確地進行繼承與派生,併合理地重用程式碼! 定義 子型別必須能夠替換掉它們的父型別、並出現在父類能夠出現的任何地方。 這個就是儘量用多型的方法程式設計,也就是GRASP模式中的多型。 如果對於每一個型別為T1的物件o1,都有型別為T2的物件o2,使得以T
設計模式之設計原則-里氏替換原則
父類和子類 面嚮物件語言中的繼承,有以下優點: 程式碼共享,減少建立子類的工作量,只要繼承了父類就擁有父類的方法和屬性 提高程式碼重用性 子類可以完全繼承父類的方法,又可以對父類的方法進行重寫,既可以和父類保持一致,也可以有自身的特點 提高程式碼的擴充套件