设计模式 创建型模式 简单工厂模式
概述
简单工厂模式又叫静态工厂模式,是属于创建型模式,工厂方法通过参数来控制创建不通的对象,这些对象都继承同一个夫类。
类图

代码实现
1 | public class CarFactory { |
1 | public interface Car { |
1 | public class BMWCar implements Car { |
1 | public class BaojunCar implements Car { |
- 产品类(宝马、宝骏)都继承Car类
- 工厂类根据入参不同返回不通的产品
下面是主方法结果:1
2
3
4
5
6
7
8
9
10public class Main {
public static void main(String[] args) {
Car bmw = CarFactory.getCar("BMW");
bmw.desc();
Car baojun = CarFactory.getCar("BAOJUN");
baojun.desc();
Car xxx = CarFactory.getCar("xxx");
xxx.desc();
}
}
优缺点
优点:
- 通过入参控制返回不同的产品,隐藏生成产品的逻辑,调用方属于消费者
- 调用方只需要记录相关类的参数即可创建对应的类,避免了创建类名复杂,不好记忆的问题
- 相关参数可以放到配置文件中,一定成都上增加了灵活性
缺点:
- 所有的类创建都在工厂类创建,一但工厂类发生问题所有的产品的创建都受到影响
- 扩展性差,如果增加新的产品需要在工厂类增加代码,导致工厂类过于复杂且庞大
- 产品的创建基于静态方法,造成产品无法形成基于继承的等级结构
应用场景
- 加密场景 KeyGenerator keyGen=KeyGenerator.getInstance(“DESede”);
- DateFormat JDK类库中广泛使用了简单工厂模式,如工具类java.text.DateFormat,它用于格式化一个本地日期或者时间。
参考地址
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment











