标签:this 翻转 方式 public 函数 3.2 1.2 耦合 概念
说到依赖注入(Dependency Injection),肯定离不开控制反转(Inversion of Control).依赖注入是实现控制翻转最常见的方式之一(因为spring的流行).
这里根据我自己学习依赖注入(DI)的资料整理,以及一些自己的看法
1.依赖注入初识
无论是因为什么,从哪里接触的依赖注入.首先就是学习三连了:依赖注入是什么?为什么要用依赖注入?怎么用依赖注入?
1.1是什么?
依赖注入,就是一个类需要使用到另外一个类的实例的时候,这个实例是通过第三方注入的方式被提供的.
举例:当你需要喝水时,水的实例xx矿泉水,是买来的,而不是自己生产的;
1.2为什么?
依赖注入的目的是实现控制反转,而控制反转的目的在于解耦.
举例:当你喝水的时候,你只要"需要",即暴露对外接口,水的实例就会通过某个过程,提供给你,你不需要关心是哪种水.(还记得java的封装特性吗?)
那么依赖注入的直接优势就是解耦以后的高可维护性.
举例:只暴露需要水的接口,至于选择哪种水(啤酒,饮料,矿泉水?),则有另外的方法实现(你在商店选择哪种水),即决定注入你的是类的哪个实例.这样的话需要水,和需要那种水,就降低了耦合,
补充:工厂模式是依赖注入的实现手段,参考spring的bean容器概念.
1.3怎么用
依赖注入有三种注入方式
1.3.1构造函数注入(Contructor Injection)
public class People{ private Dog dog; public People(Dog dog){ this.dog = dog; } }
1.3.2setter注入
public class People{ private Dog dog; public void setDog(Dog dog){ this.dog = dog } }
1.3.3接口注入
public interface Animal{ public void setAnimal(Dog dog); } public class People implements Animal{ @Override public void setAnimal(Dog dog){ this.dog = dog; } }
初识到这里了先
标签:this 翻转 方式 public 函数 3.2 1.2 耦合 概念
原文地址:http://www.cnblogs.com/zyh186/p/7291197.html