frank oo java

我爱oo,我爱java。http://oofrank.blogchina.com

My Links

Blog统计

公告

欢迎到 oofrank@blogchina 来 QQ:421057986 email:oofrank@163.com
www.flickr.com
oofrank@flickr with my S9500

Free Download Manager
Free Download Manager

文章

收藏

相册

IT

other

存档


正在读取评论……
在我们设计编码过程中,“针对接口编程”已经是非常共识的了,于是很多地方出现类似的代码:

InterfaceX  interfaceObject=InterfaceFactory.getInstance();  //此处InterfaceFactory是具体类,即简单工厂

InterfaceX  interfaceObject=InterfaceFactory.getInstance("type");

这样就使得当前类只依赖于InterfaceX 而不是具体的实现了;

但是我认为如果InterfaceFactory可能变化,则不应该使当前类依赖于InterfaceFactory[将违反OCP],更近一步,该方式造成了对InterfaceFactory的依赖,通过工厂方法模式将InterfaceFactory变为接口可以解决OCP的问题,但我们不禁要问为什么当前类要依赖InterfaceFactory呢?这是一个多余的依赖呀!此时使用Ioc才是最好的方案.

结论:
       1、   当工厂比较稳定时才应当使用简单工厂;
       2、   当实现类
要有非常多的扩展时要使用工厂方法模式〔即包含工厂方法的类应该是抽象的〕;
       3、   在适宜的时机使用Ioc不使用工厂。





Trackback: http://tb.donews.net/TrackBack.aspx?PostId=343145


[点击此处收藏本文]  发表于2005年04月20日 12:07 PM




正在读取评论……
大名
网址
验证码
评论