物件導向設計原則 黎克特制替換原則 LSP

2021-04-13 12:15:01 字數 513 閱讀 2708

求:子類可以替換父類並且出現在父類能夠出現的任何地方

這個原則也是在貫徹gof倡導的面向介面程式設計!

在這個原則中父類應盡可能使用介面或者抽象類來實現!

子類通過實現了父類介面,能夠替父類的使用地方!

通過這個原則,我們客戶端在使用父類介面的時候,通過子類實現!

意思就是說我們依賴父類介面,在客戶端宣告乙個父類介面,通過其子類來實現

這個時候就要求子類必須能夠替換父類所出現的任何地方,這樣做的好處就是,在根據新要求擴充套件父類介面的新子類的時候而不影響當前客戶端的使用!

這些基本的原則在實現方法也有個共同層次,就是使用中間介面層!以此來達到類物件的低偶合,也就是抽象偶合!

呵呵,不知道這樣的表述是否能讓人聽明白!我總覺得對乙個新事物的概念是否完全理解,最基本標準就是自己是否能夠講解的讓自己明白!所以這些學習筆記中,我試圖使自己作為乙個老師的角色把對新事物的想法和心得描述出來,再讓自己以乙個學生的角度去試圖理解它,如果能明白,就證實自己已經這個新事物有幾分了解,至少沒誤解!  

物件導向設計原則 黎克特制替換原則

黎克特制替換原則lsp liskov substitution principle 主要闡述了有關繼承的一些原則。子類可以擴充套件父類的功能,但不能改變父類原有的功能,如果重寫了父類的方法,就會降低整個繼承體系的復用性,如果違背了黎克特制替換原則,就很有可能出現執行錯誤 這裡以乙個鳥的例子來闡述 首...

物件導向設計原則 黎克特制替換原則

黎克特制替換原則是任何基類出現的地方,子類一定可以替換它 是建立在基於抽象 多型 繼承的基礎復用的基石,該原則能夠保證系統具有良好的拓展性,同時實現基於多型的抽象機制,能夠減少 冗餘。黎克特制替換原則要求我們在編碼時使用基類或介面去定義物件變數,使用時可以由具體實現物件進行賦值,實現變化的多樣性,完...

物件導向設計 黎克特制替換原則

黎克特制替換原則 liskov substitution principle,lsp 是指如果對每乙個型別為t的物件o,都有型別為t1的物件o1,使得以t定義的所有程式p在所有的物件o替換為o1是,程式p的行為沒有發生變化,那麼型別t1是型別t的子類。通俗理解是 中任何父類物件可以出現的地方,子類都...