C#七大設計原則之里氏替換原則
里氏替換原則
定義:子型別必須能夠替換掉它們的父型別。
也就說子類可以賦給父類,父類物件可以強制轉化為子類物件。
在面向物件的思想中,派生類擁有基類的所有公開的所有特徵。
當派生類賦值給基類時,派生類的資料結構依次對應於基類的資料結構,而派生類自己擁有的資料將不可見。
當基類將要強轉成派生類時,基類物件的資料結構無法依次無法填充完派生類的所有資料結構。
相關推薦
C#七大設計原則之里氏替換原則
里氏替換原則 定義:子型別必須能夠替換掉它們的父型別。 也就說子類可以賦給父類,父類物件可以強制轉化為子類物件。 在面向物件的思想中,派生類擁有基類的所有公開的所有特徵。 當派生類賦值給基類時
面向物件的五大設計原則之里氏替換原則
里氏替換原則(liskov substitution principle,簡稱LSP)的核心只有一句話,subtypes must be substitutable for their base types(子類必須能夠替換成它們的基類),關於它的定義和主要的思想如下: 由於面向物件程式設計
面向物件原則之里氏替換原則
轉載請註明出處:http://blog.csdn.net/feibendexiaoma/article/details/74391028 一.簡稱 英文全稱是Liskov Substitution Principle, 縮寫是LSP 二.定義 如果對每一個型別為S的物件O1,都
設計模式學習之設計模式原則(一):單一職責原則和里氏替換原則
學習設計模式,以《設計模式之禪》為藍本進行總結與學習,今天先記錄設計模式六大原則的兩個原則:單一職責原則(SRP)和里氏替換原則(LSP)。 單一職責原則 Single Responsibilit
Java設計模式——六大原則之里氏替換
肯定有不少人跟我剛看到這項原則的時候一樣,對這個原則的名字充滿疑惑。其實原因就是這項原則最早是在1988年,由麻省理工學院的一位姓裡的女士(Barbara Liskov)提出來的。 定義1:如果對每一個型別為 T1的物件 o1,都有型別為 T2 的物件o2,使得以 T1定義
設計模式的七大原則(4) --里氏替換原則
前言 上一節中我們介紹了,依賴倒置,依賴倒置利用抽象的穩定性來架構我們的系統,是我們經常能遇到的一種原則,比如說面向介面程式設計。 這一節中,我們來說說里氏替換原則,這個原則其實非常非常的簡單,其實與依賴倒置相結合來看,就是希望我們用抽象的方法來構建專案而非具體的實現,里氏替換原則就是推薦我們不要重寫父類中具
面向物件設計原則之里氏代換原則
例如有兩個類,一個類為BaseClass,另一個是SubClass類,並且SubClass類是BaseClass類的子類,那麼一個方法如果可以接受一個BaseClass型別的基類物件base的話,如:method1(base),那麼它必然可以接受一個BaseClass型別的子類物件sub,meth
"圍觀"設計模式(2)--里氏替換原則(LSP,Liskov Substitution Principle)
在面向物件的程式設計中,里氏替換原則(Liskov Substitution principle)是對子型別的特別定義。它由芭芭拉·利斯科夫(Barbara Liskov)在1987年在一次會議上名為“資料的抽象與層次”的演說中首先提出。里氏替換原則的內容可以描述為: “派生
六大設計原則,里氏替換原則
我們都知道繼承是面嚮物件語言中極其重要的一部分語法,當然他的存在給了我們很大的便利,但是同樣他也有很多的缺陷。 繼承是侵入性的,只要繼承,就必須擁有父類的所有屬性和方法; 降低了程式碼的靈活性。子類必須擁有父類的屬性和方法,上子類多了很多的約束; 增強了耦合
六大設計原則(一)單一職責原則、里氏替換原則
一、單一職責原則: 英文名Single Responsibility Principle,應該有且僅有一個原因引起類的變更。 There should never be more than one reason for a class to change。 單一職責原則提出
設計模式六大原則:里氏替換原則
里氏替換原則: 子類應當可以替換父類並出現在父類能夠出現的地方。比如:公司搞年度派對,都有員工都可以抽獎,那麼不管是新員工還是老員工,也不管是總部員工還是外派員工,都應當可以參加抽獎。 案例: 1 internal class Program 2 { 3 private s
程式設計原則之里氏替代原則
一、什麼是里氏替代原則 定義: T1類的物件O1,T2類的物件O2,如果在程式P中將T1的物件O1全部替換成T2的物件O2,程式P的行為不發生變化,則我們說T2是T1的子類。 定義引申: 1、子類可以擴充套件父類的方法,但最好不要重寫覆蓋父類已有的非抽象方法。 2、
面向物件原則之一 里氏替換原則
原文: 面向物件原則之一 里氏替換原則 前言 面向物件有人分為五大原則,分別為單一職責原則、開放封閉原則、依賴倒置原則、介面隔離原則、里氏替換原則。 也有人分為六大原則,分別為單一職責原則、開放封閉原則、依賴倒置原則、介面隔離原則、里氏替換原則、迪米特法則。 現在我們來介紹里氏替換原則
開閉原則與里氏替換原則
1.開閉原則是面向物件設計的基本原則之一,是“可複用設計”的基礎,它的主要原則是:對擴充套件開放,對修改關閉;意思就是我們改變一個軟體時。應該通過擴充套件方式來改變軟體,而不是修改原有的程式碼。2.里氏替換原則里氏替換原則是說,任何基類可以出現的地方,子類一定可以出現(只有當
設計模式之禪(里氏替換原則)2018-10-19
介面與抽象類的區別: 介面卡模式:使用不同介面的類所提供的服務為客戶端提供它所期望的介面。 實現: 有一個 MediaPlayer 介面和一個實現了 MediaPlayer 介面的實體類 AudioPlayer。預設情況下,AudioPl
設計模式之設計原則-里氏替換原則
父類和子類 面嚮物件語言中的繼承,有以下優點: 程式碼共享,減少建立子類的工作量,只要繼承了父類就擁有父類的方法和屬性 提高程式碼重用性 子類可以完全繼承父類的方法,又可以對父類的方法進行重寫,既可以和父類保持一致,也可以有自身的特點 提高程式碼的擴充套件
設計模式 - 七大設計原則(三)- 迪米特法則與里氏替換原則
概述 簡單介紹一下七大設計原則: 開閉原則:是所有面向物件設計的核心,對擴充套件開放,對修改關閉 依賴倒置原則:針對介面程式設計,依賴於抽象而不依賴於具體 單一職責原則:一個介面只負責一件事情,只能有一個原因導致類變化 介面隔離原則:使用多個專門的介面,而不是使用一個總介面 迪米特法則(最少知道原則):
第2章 面向物件的設計原則(SOLID):2_里氏替換原則(LSP)
2. 里氏替換原則(Liskov Substitution Principle,LSP) 2.1 定義 (1)所有使用基類的地方必須能透明地使用子類替換,而程式的行為沒有任何變化(不會產生執行結果錯誤或異常)。只有這樣,父類才能被真正複用,而且子類也能夠在父類的基礎上增加新的行為。也只有這樣
C#面向物件 |多型之里氏轉換原則
面向物件六大原則 單一職責原則 開閉原則 里氏轉換原則 依賴倒置原則 介面隔離原則 迪米特原則 里氏轉換原則 里氏轉換 子類物件可以直接賦值給父類變數。 //舊版方式. Cat c = new Cat(); c.Cry(); //新版方式. 兩種方式
設計原則---里氏替換原則
本文參考自設計模式之禪(第二版)第二章 1.1 愛恨糾葛的父子關係 在面向物件的語言中,繼承是必不可少的、非常優秀的語言機制,它有如下優點: 程式碼共享,減少建立類的工作量,每個子類都擁有父類的方法和屬性; 提高程式碼的重用性; 子類可以形似父