模式2:简单工厂模式的优缺点

    软件模式是人们在进行软件开发的过程中,总结出的对各种问题域的解决方法,不同的问题域有不同的模式来解决。新的问题域会出现,那么解决新的问题域的模式也会出现,随着人们对问题域理解的进步,模式也在进步,就的模式很可能被新的模式推翻,记住,模式不是真理,而是经过不断摸索,总结出的一套解决方法。
    上一篇文章中说了所有模式中最简单的一种--简单工厂模式,其实这种模式属于工厂模式的一种,工厂模式细分可以分为3中:简单工厂模式,工厂方法模式和抽象工厂模式。为什么要细分为3中模式呢?各种模式从实现的难易程度,对系统的要求都有不同的影像。下面我们来看看简单工厂模式的优缺点。
    在简单工厂模式中有一个工厂类,还有一个所有产品的超类(在系统中是以接口的形式出现的)和各个具体产品类。为了让客户在系统运行期间动态的决定需要那种水果,所以提供了所有产品的超类,这是利用的面向对象的多态机制,相信大家不会陌生。
    通过提供了一个产品的超类类,在我们的系统需要别的形状的时候只要加入一个实现这个超类的具体产品类就可以了。产品中确实自动添加了我们需要的新产品,但工厂没有可以提供新产品的逻辑,必须修改源代码,在if语言中加上创建新产品的逻辑,重新编译系统才可以。这一点违反了“开闭原则”,如何才可以不违反原则呢,工厂方法模式的其他两个模式作出了解决的方法。但不完全。我会尽快写一些“工厂方法模式”和“抽象工厂模式”文章。但简单工厂模式也是有优点的,要不然也没有存在的理由了,优点就在于实现起来很简单,对于一些本身就很简单的系统没有必要使用复杂的模式。
    今天就到这里。

posted on 2005-06-14 11:23  chance_win  阅读(1665)  评论(0)    收藏  举报

导航