工厂模式比简单工厂模式优越在哪?(原创)

关于笔者对简单工厂模式的分析,可以参考:

http://www.cnblogs.com/maodouzi/archive/2010/12/29/1920918.html

 

简单工厂模式的最大缺点,在于:添加一个新的功能类时,简单工厂类需要相应地添加其构造过程。

虽然运用某些语言本身的反射和自省机制,可以省却一些改变。但当创建过程越发复杂之后,比如在新类创建之前,需要很多准备工作,而且不同的类,准备过程各个不同。

此时,就没有办法再借助反射机制来偷懒,毕竟,反射机制只能根据类名或者方法名,返回相应的类和方法,其它的事,他也干不了。

 

这时候,工厂模式就应运而生。

工厂模式和简单工厂模式的区别就在于工厂类。简单工厂模式在一个工厂类里完成判断,生产客户端需要的对象。而工厂模式则把这件事交给子类去完成。

每一个工厂子类和新添加的后台功能类一一对应。所有的工厂子类都继承一个最高层的工厂类,所以他们都有同样的接口。

 

如此一来,当需要添加一个新的功能类时,只需要同步地添加一个与之对应的工厂子类,来负责创建新添加的功能类对象。

这样,依旧符合“开放-封闭”原则,只扩展,不修改。

posted @ 2010-12-30 10:00  毛豆子  阅读(367)  评论(0编辑  收藏  举报