首頁 > 行業(yè) > 正文

【設(shè)計(jì)模式之禪】里氏替換原則

2023-08-16 05:35:27來源:博客園  


(資料圖)

  • 什么叫里氏替換原則?

"這里需要如下的替換性質(zhì):若對(duì)類型S的每一個(gè)對(duì)象O1,都存在一個(gè)類型T的對(duì)象O2,使得在所有針對(duì)T編寫的程序P中,用O1替換O2后,程序P的行為功能不變,則S是T的子類型。"這是最專業(yè)最權(quán)威的定義,但是我當(dāng)時(shí)就是看不懂這句話,看完這個(gè)章節(jié)也沒有完全理解,只能通俗易懂的來描述:讓子類中的方法參數(shù)或者返回結(jié)果是相同的或者是父類的子集

  • 書中的里氏替換原則

這本書真的寫的特別特別好,能夠讓我這個(gè)對(duì)計(jì)算機(jī)不是很感興趣的人讀的很起勁,原因就是在于他用詞接地氣,并且舉了很多有趣的例子,比如說反恐精英中開槍方法的入?yún)⑹峭婢邩?,雖然是槍的子類,但是沒有滿足業(yè)務(wù)需要,所以子類一定也是可以滿足父類的業(yè)務(wù)需求的,如果子類不能完整地實(shí)現(xiàn)父類的方法,或者父類的某些方法在子類中已經(jīng)發(fā)生“畸變”,則建議斷開父子繼承關(guān)系,采用依賴、聚集、組合等關(guān)系代替繼承。

  • 里氏替換原則的優(yōu)勢(shì)
    1. 代碼共享,即公共代碼被抽到父類。
    2. 提高代碼重用性,子類在父類的基礎(chǔ)上可以有自己的特性。
    3. 提高代碼的擴(kuò)展性。
  • 里氏替換原則的實(shí)際應(yīng)用  

emmmmmmmm,暫時(shí)想不到,期待大佬補(bǔ)充,我只想到在做代碼review的時(shí)候,不去修改抽象類.........

標(biāo)簽:

相關(guān)閱讀

精彩推薦

相關(guān)詞

推薦閱讀