设计模式 简单工厂模式
本文将介绍设计模式中的简单工厂模式。
一、什么是简单工厂模式?
定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常具有共同的父类。
二、实现
1. 基本角色
简单工厂模式包含以下三个角色:
- Factory 工厂角色:
- 简单工厂模式的核心
- 负责实现创建所有产品实例的内部逻辑
- 可以被外界直接调用以创建所需的产品对象
- Product 抽象产品角色:
- 所有产品的父类
- 封装了所有产品的公用方法
- ConcreteProduct 具体产品角色:
- 简单工厂模式的创建目标
2. 简单示例
Factory:
1 |
|
Product:
1 |
|
ConcreteProduct:
1 |
|
三、优缺点
1. 优点
- 将对象的创建和使用分离,更符合单一职责原则,更有利于代码复用,更方便于系统维护
- 使用者无需知道对象的具体创建细节,减轻使用者的记忆负担
2. 缺点
- 工厂类集中了所有产品的创建逻辑,职责过重
- 会增加系统中类的数量
- 一旦添加新产品,便需要对工厂类做修改
四、简单工厂模式的简化
有时候,为了简化简单工厂模式,还可以将抽象产品类和工厂类合并,直接通过调用抽象产品类的静态工厂方法创建对象。
参考
- 《Java 设计模式》