设计模式(二) : 创建型模式--简单工厂模式

简单工厂模式是属于创建型的模式,它是工厂类决定去创建哪一种类型的产品。个人觉得它不是一种设计模式,倒是像一种编程习惯。

下面看这个模式的类图(截自《java与模式》):

示意性代码就不贴在这边了,太简单了。当有多个ConcreteProduct的时候,Creator的factory方法可以有type参数,这样的话factory里面会出现一堆if, else,很容易出错。

解决的办法,我们可以有多个工厂方法,这样客户端决定调用哪个工厂方法。

--------静态工厂--------

上面的两种方法,我们在创建concreteproduct的时候,不可避免的去new了工厂类,所以有静态工厂方法,静态工厂方法的话就是工厂方法是静态的,这样我们在创建对象的时候就不用去new一个工厂类的实例了。

--------优缺点--------

优点:客户端免去了创建对象的责任交给工厂类负责,这样的话就实现了创建逻辑和业务逻辑的解耦。

缺点:工厂类中集中了所有product类的创建逻辑,这样的话,哪一天工厂类不能正常工作了,就忧桑了,还有就是如果我们要扩展新的创建逻辑,比如说有新的产品要加入了,哪个工厂类就需要修改,这不是一个好的创建逻辑,违反了”开闭原则“。

posted @ 2014-05-28 18:13  Ruth/Christy  阅读(134)  评论(0编辑  收藏  举报