依赖倒置原则 Dependence Inversion Principle

High level modules should not depend upon low level modules.Both shoud depend upon abstractions.Abstractions should not depend upon details.Details should depend upon abstractions.

1.高层模块不应该依赖底层模块,两者都应该依赖其抽象.

2.抽象不应该依赖细节.

3.细节应该依赖抽象.

在java语言中的表现为:

1.模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的.

2.接口或抽象类不依赖于实现.

3.实现类依赖接口或抽象类.

更加精简的定义就是"面向接口变成"---OOD(Object-Oriented Design,面向对象设计)的精髓之一.

具体的,只要遵循以下的几个规则就可以:

1.每个类尽量都有接口或抽象类,或者抽象类和接口两者都具备.

2.变量的表面类型尽量是接口或者抽象类

3.任何类都不应该从具体类派生

4.尽量不要覆写基类的方法.

5.结合里氏替换原则使用.

猜你喜欢

转载自www.cnblogs.com/zyh186/p/9187166.html