属性值注入 还是 构造函数注入?

王朝c#·作者佚名  2006-12-16
宽屏版  字体: |||超大  

对于IOC的两种注入方式(属性值注入和构造函数注入)选择,应该考虑到以下几种因素:

1. 使用属性值注入使得很容易处理默认值和任意值,在这种情况下并不必须设定每个属性值.使用构造函数注入,容易导致产生多个多个构造函数,彼此调用.多个构造函数或多个参数将使得程序冗长和不易管理.

2. 使用属性值注入(属性值不为private)将会自动使子类继承,然而gouzaohanshu却不能.后者的限制使得子类只有创建一个和父类相关的样板函数,他将会调用父类构造函数.然而不论用哪种方式,现在大多数IDE都会很容易生成构造函数或是属性.

3. 使用属性值注入生成JAVA文档比构造函数注入更容易.

4. 运行时环境下,属性值注入可以使用反射通过属性名称操作属性.然而构造函数注入,编译后的class文件不会维持构造函数的参数空间,因此自动根据名称匹配调用不可能.

5. 属性值注入允许获取和设置属性状态(值),这种情况有益于很多状况,比如属性状态要持久化到任何存储媒介.

6. 属性值注入可以使用PropertyEditor机制在需要时自动进行类型转化,spring支持这种情况.

7. 属性值注入由于可以多次调用setter方法使得容易改变.

.........................翻译的太差,还是算了吧!.......

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有