定义 :高层次的模块不依赖于低层次的模块的实现细节。二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 高层模块就是调用端,底层模块就是实现类。 低层模块尽量都要有抽象类或接口,或者两者都有。 变量的声明类型尽量是抽象类或接口。 使用继承时遵循里氏替换原则。