浅读《大话设计模式》————8、雷锋依然在人间——工厂方法模式
简单工厂模式、工厂方法模式,这两者的区别我想顾名思义!前者讲的是这个模式用到一个简单工厂,但是后者强调的是工厂方法,其实意思就是该模式中工厂设计很重要。
其实理解了简单工厂,基本上只要再稍微看一下工厂模式的设计,就很容易理解这两个模式。不过,似乎工厂方法模式是简单工厂模式的改进版,简单工厂没有存在的必要。但是事实并非如此,在扩展不经常的时候,一个简单工厂就可以了。但是要是经常有相似功能的扩展需求,那么工厂方法模式就要有价值一些。
在代码形式上,简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。但是,工厂方法是把简单工厂的内部逻辑判断移到了客户端代码来进行。所以,想要增加功能,就同时需要修改客户端代码。但是这样代码结构还是很清晰的,所以两者各有千秋!