上次写到的开闭原则,是对扩展开放,对修改关闭。一个好的方法是继承,可是这次的一个原则会让我们知道,并不是所有的继承都是好的,都是合理的。
里氏代换原则(LSP)
严格表达:如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得一T1定义的所有程序P在所有的对象o1都代换成为o2时,程序P的行为没有变化,那么类型T2时类型T1的字类型。
简单来说,就是一个软件实体如果使用的是一个基类的话,那么一定是用于其字类,而且它根本不能察觉出积累对象和字类对象的区别。
上次写到的开闭原则,是对扩展开放,对修改关闭。一个好的方法是继承,可是这次的一个原则会让我们知道,并不是所有的继承都是好的,都是合理的。
里氏代换原则(LSP)
严格表达:如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得一T1定义的所有程序P在所有的对象o1都代换成为o2时,程序P的行为没有变化,那么类型T2时类型T1的字类型。
简单来说,就是一个软件实体如果使用的是一个基类的话,那么一定是用于其字类,而且它根本不能察觉出积累对象和字类对象的区别。