里氏替换原则
里氏替换原则的全称是:Liskov Substitution Principle (LSP)
- 第一种定义:如果对每一个类型为S的对象O1,都有类型为T的对象O2,使得以T定义的所有程序P在所有的对象O1都代换成O2时,程序P的行为没有发生变化,那么类型S是类型T的子类型。
- 第二定义:所有引用基类的地方必须能透明地使用其子类的对象。所有引用基类的地方必须能透明地使用其子类的对象。
- 通俗解释:只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误一场。
示例
- 在介绍开闭原则时写的ImageLoader的示例中:
- MemoryCache、DiskCache、DoubleCache 都可以替换ImageCache,用户可以在使用时指定具体的缓存对象就可以动态替换ImageLoader中的缓存策略。这就使得ImageLoader的缓存系统可拓展性增强。