这明显是上层依赖底层模块,底层可以复用,而上层不可复用,这就违反了里氏代换原则:一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。也就是说,在软件界面,把父类都替换成它的子类,程序的行为没有变化。
正是高层模块和底层模块都依赖抽象,所以才能满足底层和高层的低耦合,和无修改式的插入。面向接口编程!
这明显是上层依赖底层模块,底层可以复用,而上层不可复用,这就违反了里氏代换原则:一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。也就是说,在软件界面,把父类都替换成它的子类,程序的行为没有变化。
正是高层模块和底层模块都依赖抽象,所以才能满足底层和高层的低耦合,和无修改式的插入。面向接口编程!