Chinaunix首页 | 论坛 | 博客
  • 博客访问: 66374
  • 博文数量: 14
  • 博客积分: 569
  • 博客等级: 中士
  • 技术积分: 335
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-22 14:17
文章分类
文章存档

2013年(1)

2012年(13)

我的朋友

分类: IT业界

2012-03-21 11:47:41

依赖倒置原则(DIP),通过使代码依赖抽象而不依赖具体实现的方式来达到解耦的目的。让我们先来回顾一下DIP的定义吧:1)高层模块不应该依赖底层模块,二者都要依赖与抽象;2)抽象不应该依赖细节,细节应该依赖与抽象。

简单点说就是:依赖与抽象,或者可以说程序中所有的依赖关系都应该终止于抽象类或或接口。根据这个理解可以得出以
下原则:

1.任何变量都不应该持有一个指向具体类中已经实现了的方法。

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

3.任何方法都不应该覆写它的任何基类中已经实现了方法。

当然,根据实际需要,程序中或多或少会有违反这些规则的情况出现。

依赖注入是DIP的实现。依赖注入是这样一个过程:由于客户类只依赖于服务类的接口,而不依赖于具体类,所以客户类
只定义了一个注入点。在程序运行的过程中,客户类不会直接实例化具体的类实例,而是由上下文环境或专门的组件来负责实例化类,然后将其注入客户类中,保证客户类的正常运行。

一般来说,DIP有三种方式,不过比较正常常用的就是以下两种。

1.构造注入:是指在客户类中,设置一个服务类接口类型的数据成员,并以构造函数为注入点,这个构造函数接受一个具
体的服务类实例为参数,并将它赋值给服务类接口类型的数据成员。

以上几点,希望能给各位带来启发。
阅读(915) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~