IoC模式和factory method模式的一些区别

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

2004年第2期的《程序员》杂志里,有一篇martin flower的关于Ioc的文章。拜读过martin的《refactor》,所以关于他的文章当然要细细品味。不过在martin用来说明IoC的例子,我觉得似乎很困惑。我完全可以用一个factory method来代替IoC实现这个例子。所以不明白这两者之间有什么具体区别,还是说工厂的方法就是实现IoC的一个具体实现。

后来在jdon上看到bq的文章,正好是我需要的。

假设有两个类B 和 C:B作为调用者,C是被调用者,在B代码中存在对C的调用: public class B{

private C comp;

......

}

当客户端调用B时,分别使用工厂模式和Ioc有不同的特点和区别:

主要区别体现在B类的代码,如果使用Ioc,在B类代码中将不需要嵌入任何工厂模式等的代码,因为这些工厂模式其实还是与C有些间接的联系,这样,使用Ioc彻底解耦了B和C之间的联系。

使用Ioc带来的代价是:需要在客户端或其它某处进行B和C之间联系的组装。

所以,Ioc并没有消除B和C之间这样的联系,只是转移了这种联系。

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