里氏代换原则 所有引用基类的地方必须能透明地使用其子类的对象Liskov Substitution Priciple在软件中,将一个基类的对象替换成子类对象,程序将不会产生任何错误和异常。而反过来则不成立。常见的就是Dao层和Service层,一般都定义为接口,而使用接口时,则肯定是使用具体实现类的对象。接口规定了方法入口和返回,但没有具体实现,只有实现类的对象才真正可以使用。 设计成“接口-实现类”之后,在使用时,应尽可能使用基类类型来对对象进行定义,而在运行时,再确定具体使用哪一个子类对象类型,来替换掉父类对象来实现。 常见思路: 抽象类-实现类-扩展类接口-实现类-扩展类