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