设计模式 工厂方法模式
本文将介绍设计模式中的工厂方法模式。
一、什么是工厂方法模式?
提供一个声明了产品创建方法的接口,让具体的工厂类实现该方法,从而创建出对应的产品。
二、实现
1. 结构
2. 角色
- Factory 抽象工厂:
- 所有工厂的抽象类
- 定义了抽象工厂方法,该方法应该被所有的具体工厂实现
- ConcreteFactory 具体工厂:
- 抽象工厂的子类
- 负责创建对应的产品
- Product 抽象产品:
- 所有产品的父类
- 封装了所有产品的公用方法
- ConcreteProduct 具体产品:
- 创建目标
3. 简单示例
Factory:
1 |
|
ConcreteFactory:
1 |
|
Product:
1 |
|
ConcreteProduct:
1 |
|
使用:
1 |
|
三、优缺点
1. 优点
- 增加新的产品时,只需要增加对应的具体工厂类,而无需修改抽象工厂类中的原有代码
2. 缺点
- 增加新的产品时,要增加产品类、具体工厂类,系统中类的个数将成倍提升
参考
- 《Java 设计模式》