A:高层模块不应该依赖于底层模块,两个都应该依赖抽象。
(我理解的意思是:高层模块一般是 主动调用者,底层模块封装的是 一些各个类的功能细节,这些底层类同时又继承一个包含这些类的公共方法的一个抽象类,在高层模块中调用这些类的各个实例,来调用每个类的具体方法!这样就省略了各个类在高层类中的实例,及其调用各个类的方法,这样既降低了高层模块和底层模块的耦合关系,也运用了开放封闭原则,通过 面向对象的继承和对多态机制,可以实现对抽象体的继承,通过覆写其方法来改变固有行为,实现新的扩展方法,所以对于扩展就是开放的,修改封闭:不能一味的对类的某个功能添加代码,要分离出来)
高层模块不应该依赖于底层模块也可以理解成:发生在一个具体类和一个抽象类(或java接口)之间,使两个必须发生关系的类之间存在最大的灵活性。(这儿只能说降低了耦合)
(我理解的意思是:高层模块一般是 主动调用者,底层模块封装的是 一些各个类的功能细节,这些底层类同时又继承一个包含这些类的公共方法的一个抽象类,在高层模块中调用这些类的各个实例,来调用每个类的具体方法!这样就省略了各个类在高层类中的实例,及其调用各个类的方法,这样既降低了高层模块和底层模块的耦合关系,也运用了开放封闭原则,通过 面向对象的继承和对多态机制,可以实现对抽象体的继承,通过覆写其方法来改变固有行为,实现新的扩展方法,所以对于扩展就是开放的,修改封闭:不能一味的对类的某个功能添加代码,要分离出来)
高层模块不应该依赖于底层模块也可以理解成:发生在一个具体类和一个抽象类(或java接口)之间,使两个必须发生关系的类之间存在最大的灵活性。(这儿只能说降低了耦合)