依赖倒置原则(DIP),通过使代码依赖抽象而不依赖具体实现的方式来达到解耦的目的。让我们先来回顾一下DIP的定义吧:1)高层模块不应该依赖底层模块,二者都要依赖与抽象;2)抽象不应该依赖细节,细节应该依赖与抽象。
简单点说就是:依赖与抽象,或者可以说程序中所有的依赖关系都应该终止于抽象类或或接口。根据这个理解可以得出以下原则:
1.任何变量都不应该持有一个指向具体类中已经实现了的方法。
2.任何类都不应该从具体类派生。
3.任何方法都不应该覆写它的任何基类中已经实现了方法。
当然,根据实际需要,程序中或多或少会有违反这些规则的情况出现。
依赖注入是DIP的实现。依赖注入是这样一个过程:由于客户类只依赖于服务类的接口,而不依赖于具体类,所以客户类只定义了一个注入点。在程序运行的过程中,客户类不会直接实例化具体的类实例,而是由上下文环境或专门的组件来负责实例化类,然后将其注入客户类中,保证客户类的正常运行。
一般来说,DIP有三种方式,不过比较正常常用的就是以下两种。
1.构造注入:是指在客户类中,设置一个服务类接口类型的数据成员,并以构造函数为注入点,这个构造函数接受一个具体的服务类实例为参数,并将它赋值给服务类接口类型的数据成员。
以上几点,希望能给各位带来启发。
阅读(908) | 评论(0) | 转发(0) |