1. 简单工厂模式
概念及定义
需要明确的是简单工厂模式并不属于 23 种设计模式。但是作为工厂模式的一种实现,经常会被拿来与工厂方法模式/抽象工厂模式做异同比较。
简单工厂模式的主要思想:
工厂类的生产接口以枚举类为参数,在内部根据枚举类生产出对应的产品并返回给调用者。
简单工厂模式中角色以及职责:
Factory(工厂角色)
对外提供生产方法,利用参数控制具体返回的产品类型。
AbstractProduct(抽象产品角色)
定义产品的公共方法。
Product(产品实现角色)
对公共方法重写,实现产品的独有特性。
简单工厂模式的优缺点:
优点:
单一职责,工厂类负责产品对象的创建。
调用者只需要关心对应的枚举类型,即可以创建出对应的具体产品,而不需要了解具体的产品类。
缺点:
对于普通产品创建的代码量,简单工厂模式需要多维护一个工厂类,增加了代码的复杂度。
如果需要增加具体的产品类别,则需要修改对应的枚举类与工厂类,代码耦合性比较高。
实现步骤:
定义枚举类:该枚举类作为工厂类的生产接口的参数,可以让工厂类的生产方法生产对应的产品并返回给调用者。
2.定义抽象产品接口:
3.定义汽车工厂类:produceCar 方法接收枚举类参数,返回与枚举类对应的产品。
4.定义具体产品:特斯拉汽车与大众汽车。
5.测试结果:
总结:
由测试结果可见:
虽然 produceCar 方法返回类型为 ICar,但是在执行 drive 方法时,由子类具体现实 drive 方法。
简单工厂模式即实现:通过更改调用工厂的生产接口的参数,达到生产不同产品的目的。
版权声明: 本文为 InfoQ 作者【下雨了】的原创文章。
原文链接:【http://xie.infoq.cn/article/bc72b63c510317254d891b404】。文章转载请联系作者。
评论