2. 工厂方法模式
概念及定义
工厂方法模式是对简单工厂模式的优化,在简单工厂模式的基础上引入了抽象工厂类,用以弥补简单工厂不易扩展性。
工厂方法模式的主要思想:
通过定义抽象工厂类,然后为每个具体产品类定义对应的工厂实现类。通过具体的工厂实现类来生产对应的产品。
工厂方法模式中角色以及职责:
AbstractFactory(抽象工厂角色)
定义工厂的公共生产方法。
Factory(工厂实现角色)
对公共生产方法重写,实现对应指定产品实现的生产。
AbstractProduct(抽象产品角色)
定义产品的公共方法。
Product(产品实现角色)
对公共方法重写,实现产品的独有特性。
工厂方法模式的优缺点:
优点:
单一职责,工厂类负责产品对象的创建。
调用者只需要关心产品对应的工厂类,即可以创建出对应的具体产品,而不需要了解具体的产品类。
与简单工厂模式进行对比,在新增产品类别的时候,无需修改已有代码,直接新增对应的产品类与对应的产品工厂类即可,降低了耦合性。
缺点:
与简单共产模式进行对比,需要增加一个抽象工厂类与一些具体的工厂实现类,增加了代码的复杂度。
实现步骤:
定义 ICar 汽车接口:抽象产品角色
复制代码
2.定义 IFactory:抽象工厂角色
复制代码
3.定义 T 具体汽车与具体汽车工厂类:
复制代码
复制代码
复制代码
复制代码
复制代码
总结:
由测试结果可见:
虽然都是 ICar 类型的产品,具体调用 drive 方法的,其实都是对应的子类。
工厂方法模式即实现:通过获取工厂类名,利用反射,即可得到对应的工厂实现类来生产对应的产品。
版权声明: 本文为 InfoQ 作者【下雨了】的原创文章。
原文链接:【http://xie.infoq.cn/article/448fa7854f3d6166bbb0a057d】。文章转载请联系作者。
评论