依赖倒置原则DIP(面向接口编程—OOD)

含义:

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

2、抽象不应该依赖细节。

3、细节应该依赖抽象。

底层模块:不可分割的原子逻辑。

高层模块: 原子逻辑的再组装。

抽象:接口或者抽象类,两者都不能直接被实例化。

细节:实现类,实现接口或者继承抽象类而产生的类。可以直接被实例化。

表现:

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

2、接口或抽象类不依赖实现类。

3、实现类依赖接口或抽象类。

优点:

减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性。

依赖传递的三种写法:

1、构造函数注入。

2、Setter注入。

3、接口注入。

使用规则:

1、每个类尽量都有接口或抽象类,或者抽象类和接口两者都具备(基本要求)。

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

3、任何类都不应该从具体类派生(项目处于开放状态时,派生不超过两层可以接受,维护时可以不考虑)。

4、尽量不要覆写基类方法

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

posted @ 2014-04-11 23:13  Charles_Lv  阅读(517)  评论(0编辑  收藏  举报