依赖也就是耦合,共分为下面3种。
具体耦合(Concrete Coupling)关系:两个具体的类之间有依赖关系,如果一个具体类直接引用另外一个具体类,就是这种关系。
抽象耦合(Abstract Coupling)关系:这种关系发生在一个具体类和一个抽象类之间,这样就使必须发生关系的类之间保持最大的灵活性。
依赖(耦合)倒转原则就是指:
1 抽象不依赖细节,细节依赖抽象;或者说
2 针对接口或抽象类编程,不对细节或具体类编程;也就是说
3 高层模块不调用(不依赖)底层模块,当然,低层模块更不能调用高层模块,两者都调用接口或抽象类。
高层模块 --> 接口或抽象类 | | (继承) 低层模块
依赖倒转原则是达到开闭原则的途径。要做到依赖倒转原则,使用抽象方式耦合是关键。由于一个抽象耦合总要涉及具体类从抽象类继承,并且需要保证在任何引用到某类的地方都可以改换成其子类,因此,里氏代换原则是依赖倒转原则的基础,依赖倒转原则是OOD的核心原则,设计模式的研究和应用都是用它作为指导原则的。