工厂模式,FactoryMethod,定义一个工厂类的基类,基类中不再去实现具体的产品类的实例,而是将产品类的实例化工作放在其子类中进行,然后由客户端来决定要使用那一种产品类的实例,工厂模式也要求产品类都具有相同的产品基类,这和简单工厂模式比较相似。
个人理解:工厂模式和简单模式最大的区别是将产品类的实例化放到了工厂类的子类中实现。看书说是,许多其他的设计模式都存在着工厂模式的影子。
当产品类的需求并不固定,即总是发生变化时,我们应该采用工厂模式,这样我们通常只需要去新增新的子类去处理,而并不是去修改原来已经相对稳定的代码。
现在描述一下简单的代码需求:现在有一个业务多元化的公司,其业务包含生产化学药品,和食物,这两种不同的产品是由不同的工厂生产出来的,而最终这些产品都必须标明公司的商标。
代码如下:
工厂接口:
产品基类:
产品子类:
工厂子类,实现产品类的实例化
相关调用代码: