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

代码实现
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











