【设计模式之禅】里氏替换原则
- 什么叫里氏替换原则?
"这里需要如下的替换性质:若对类型S的每一个对象O1,都存在一个类型T的对象O2,使得在所有针对T编写的程序P中,用O1替换O2后,程序P的行为功能不变,则S是T的子类型。"这是最专业最权威的定义,但是我当时就是看不懂这句话,看完这个章节也没有完全理解,只能通俗易懂的来描述:让子类中的方法参数或者返回结果是相同的或者是父类的子集
- 书中的里氏替换原则
这本书真的写的特别特别好,能够让我这个对计算机不是很感兴趣的人读的很起劲,原因就是在于他用词接地气,并且举了很多有趣的例子,比如说反恐精英中开枪方法的入参是玩具枪,虽然是枪的子类,但是没有满足业务需要,所以子类一定也是可以满足父类的业务需求的,如果子类不能完整地实现父类的方法,或者父类的某些方法在子类中已经发生“畸变”,则建议断开父子继承关系,采用依赖、聚集、组合等关系代替继承。
- 里氏替换原则的优势
- 代码共享,即公共代码被抽到父类。
- 提高代码重用性,子类在父类的基础上可以有自己的特性。
- 提高代码的扩展性。
- 里氏替换原则的实际应用
emmmmmmmm,暂时想不到,期待大佬补充,我只想到在做代码review的时候,不去修改抽象类.........