前言 本章我們要講解的是S.O.L.I.D五大原則JavaScript語言實現的第3篇,里氏替換原則LSP(The Liskov Substitution Principle )。 開閉原則的描述是: 在面向對象編程里,繼承提供了一個機制讓子類和共享基類的代碼 ...
闡述:子類型 subtype 必須能夠替換掉它們的基類型 basetype 先提出一個問題:正方形是不是一種特殊的長方形 IS A關系 先不要回答這個問題,看下面的分析。 理解:LSP原則的一個例子,假如有個people的基類,兩個字類man類和woman類,都繼承於people類。那么針對people類的任何操作,比如fun吃飯 fun睡覺 fun走路,對於man類和woman類都成立。這個很好 ...
2012-04-07 16:29 0 5673 推薦指數:
前言 本章我們要講解的是S.O.L.I.D五大原則JavaScript語言實現的第3篇,里氏替換原則LSP(The Liskov Substitution Principle )。 開閉原則的描述是: 在面向對象編程里,繼承提供了一個機制讓子類和共享基類的代碼 ...
一、定義 (1)、所有使用基類的地方必須能夠使用子類進行替換,而程序的行為不會發生任何變化(替換為子類之后不會產生錯誤或者異常)。 只有這樣,父類才能真正被復用,子類能夠在父類的基礎上增減新的屬性和行為。才能真正的實現多態行為。 (2)、當子類繼承父類的時候,子類就擁有了父類的屬性和行為 ...
什么是里氏代換原則 里氏代換原則(Liskov Substitution Principle LSP)面向對象設計的基本原則之一。 里氏代換原則中說,任何基類可以出現的地方,子類一定可以出現。 LSP是繼承復用的基石,只有當衍生類可以替換掉基類,軟件單位的功能不受到影響時,基類才能真正 ...
1 里氏替換原則定義 Liskov於1987年提出了一個關於繼承的原則“Inheritance should ensure that any property proved about supertype objects also holds for subtype objects.”——“繼承 ...
前言 上一節中我們介紹了,依賴倒置,依賴倒置利用抽象的穩定性來架構我們的系統,是我們經常能遇到的一種原則,比如說面向接口編程。 這一節中,我們來說說里氏替換原則,這個原則其實非常非常的簡單,其實與依賴倒置相結合來看,就是希望我們用抽象的方法來構建項目而非具體的實現,里氏替換原則就是推薦 ...
OO中繼承的包含一層這樣的含義:父類中凡是已經實現好的方法,實際上是在設定規范的契約,雖然它不強制要求所有的父類遵循這些契約,但是如果子類對這些已經實現的方法任意修改,就會對整個繼承體系造成破壞。 ...
里氏替換原則 前言:今天是3.15,一個特殊的日子。不知道還會曝光出多少家不良企業,更不知道潛藏的未被曝光的企業數量之巨有沒有超出我的想象力。每年都會爆出一些諸如“塑化劑、毒膠囊、問題奶、速成雞”等等新的食品安全關鍵詞,走進餐館,走進食堂,走進超市,還真不知道什么東西敢碰。新 ...
里氏替換原則的定義是:所有引用基類的地方必須能透明化地使用其子類的對象。 里氏替換原則針對的問題 有一個功能P1,由類A完成。現需要將功能P1進行擴展,擴展后的功能為P,其中P由原有功能P1與新功能P2組成。新功能P由類A的子類B來完成,則子類B在完成新功能P2的同時,有可能會導致原有功能P1 ...