1 1軟體設計原則 黎克特制替換原則

2021-09-24 03:28:49 字數 693 閱讀 8006

定義:黎克特制替換原則,所有引用基類的地方必須能透明地使用其子類的物件。

//定義手槍抽象類

public abstract class abstractgun

//定義玩具槍抽象類

public abstract class abstracttoy

//實現手槍射擊

public class handgun extends abstractgun

}//實現機槍掃射

public class machinegun extends abstractgun

}//實現步槍射擊

public class rifle extends abstractgun

}//實現士兵類

public class soldier

public void killenemy()

}//測試實現

public class client

}

(1)**共享,減少建立類的工作量,每個子類都擁有父類的方法和屬性;

(2)提高**的重用性;

(3)子類可以形似父類,但又異於父類;

(4)提高**的可擴充套件性;

(5)提高產品或者專案的開放性。

(1)繼承是入侵性的;

(2)降低**的靈活性;

(3)增加耦合性。

軟體設計原則 黎克特制替換原則

liskov substitution principle 黎克特制替換原則 定義 如果對每一型別為t1的物件o1,都有型別為t2的物件o2,使得以t1定義的所有程式p在所有的物件o1都替換成o2時,程式p的行為沒有發生變化,那麼型別t2是型別t1的子型別。擴充套件 乙個軟體實體如果適用乙個父類的話...

軟體設計原則之黎克特制替換原則

黎克特制替換原則,在設計模式之禪一書中有兩種定義 綜合上面比較抽象的含義,換句話可能好理解些 其實就是對於同乙個程式p,把出現父類物件的地方,用子類去替換父類物件執行時,程式p功能或者說行為沒有改變,不會產生任何錯誤或異常 但是反過來就不行了,用父類去替換有子類的地方,由於子類可能擴充套件了一些功能...

軟體設計原則 黎克特制代換原則

黎克特制代換原則是物件導向設計的基本原則之一。黎克特制代換原則 任何基類可以出現的地方,子類一定可以出現。通俗理解 子類可以擴充套件父類的功能,但不能改變父類原有的功能。換句話說,子類繼承父類時,除新增新的方法完成新增功能外,盡量不要重寫父類的方法。如果通過重寫父類的方法來完成新的功能,這樣寫起來雖...