黎克特制代換原則:子型別必須能替換掉它們的父型別.
只有當子類可以替換掉父類,軟體單位的功能不受到影響時,父類才能真正的被復用,而子類也能夠在父類的基礎上增加新的行為.比如說,貓類繼承動物類,動物類擁有吃喝叫跑等行為,當某一天,我們需要狗,牛,羊也擁有類似的行為,由於它們都是繼承於動物,所以除了更改例項化的地方,程式的其他處不需要修改.
animal animal =new cat();//更改例項化:將
cat換成
cow,
sheep
,dog
等別的動物
animal.eat();
animal.drink();
animal.bark();
animal.run();
由於有黎克特制代換原則才使開放封閉原則成為了可能.由於子型別的可替換性才使得父類型別的模組在無需修改的情況下可以擴充套件,不然還談什麼對擴充套件開放,修改關閉呢
.
黎克特制代換原則
黎克特制代換原則 liskov substitution principle lsp 物件導向設計的基本原則之一。黎克特制代換原則中說,任何基類可以出現的地方,子類一定可以出現。lsp是繼承復用的基石,只有當衍生類可以替換掉基類,軟體單位的功能不受到影響時,基類才能真正被復用,而衍生類也能夠在基類的...
黎克特制代換原則
黎克特制代換原則 黎克特制代換原則 子型別必須能夠替換掉它們的父型別。就是說乙個軟體實體,如果使用的是乙個父類的話,那麼一定適用於其子類,而且,它覺察不出父類物件和子類物件的區別,也就是說,在軟體裡面,把父類都替換成它的子類,程式的行為沒有變化。只有當子類可以替換掉父類,軟體單位的功能不收到影響時,...
黎克特制代換原則
物件導向設計的重要原則是建立抽象化,並且從抽象化匯出具體化。這個匯出要使用繼承關係和乙個原則 黎克特制代換原則 liskov substitution principle lsp 那麼什麼是黎克特制代換原則呢?有個嚴格的表述,繞口,不好記。還是比較白話的這個好記。說的是 乙個軟體實體如果使用的是乙個...