IoC不是新的事物,也不是哪一种语言的特有功能,只是一种组件的协作和组织方式
主要是用来解决接口参数的注入
构造注入(构造方法)
设值注入(get/set)
接口注入(也就是说调用者和服务提供者定义一个协议)
接口注入的方法因为对象间还是有很高的耦合度,所以应用不是很广泛
构造注入和设值注入反映了面向对象编程的一个普遍问题,应该在哪里填充对象的字段,是在创建对象时还是通过属性或者方法来设定值。
martin fowler建议在对象构造时就创建完正合法的对象,这样做还有一个好处就是可以隐藏不可改变的字段(注:或者不应该在运行期间随意改变的字段),而公布一个设置方法,就意味着调用者可以自由改变字段的值。
参数太多,构造注入使系统显得有点凌乱,而且有些时候没有办法使用构造注入
主要是用来解决接口参数的注入
构造注入(构造方法)
设值注入(get/set)
接口注入(也就是说调用者和服务提供者定义一个协议)
接口注入的方法因为对象间还是有很高的耦合度,所以应用不是很广泛
构造注入和设值注入反映了面向对象编程的一个普遍问题,应该在哪里填充对象的字段,是在创建对象时还是通过属性或者方法来设定值。
martin fowler建议在对象构造时就创建完正合法的对象,这样做还有一个好处就是可以隐藏不可改变的字段(注:或者不应该在运行期间随意改变的字段),而公布一个设置方法,就意味着调用者可以自由改变字段的值。
参数太多,构造注入使系统显得有点凌乱,而且有些时候没有办法使用构造注入