设计原则----里氏替换原则

设计原则----里氏替换原则(LSP)

里氏代换原则:在软件里面,把父类都替换成它的子类,程序的行为没有变化。简单地说,子类型必须能够替换掉他们的父类型。这好像是学继承时就要理解的概念,子类继承了父类,所以子类可以以父类的身份出现。


只有当子类可以替换掉父类,软件单位的功能不受到影响时, 父类才能真正被利用,而子类也能够在父类的基础上增加新的行为。比如说,猫是继承动物类的,以动物的身份拥有吃、喝、跑、叫等行为,可当某一个天,我们需要狗、牛、羊也拥有类似的行为,由于他们都是继承于动物,所以除了更改实力话的地方,程序的其他出不需要改变。

设计原则-里氏代换原则
动物 animal = new 猫();
需求的变化,使得需要将“猫”更换成“狗”、“牛”等其他动物,程序其他地方不需要改变
animal.吃();
animal.喝();
animal.跑();
animal.叫();

正是由于子类型的可替换性才是的使用父类类型的模块在无需修改的情况下可以扩展。不然还谈什么扩展开放,修改关闭呢。再看以来倒转原则,高层模块不应该依赖底层模块,两个都应该依赖抽象,对这句话你就会有更深入的理解了。

猜你喜欢

转载自xcynqy123.iteye.com/blog/1409203