将类的创建任务委托给工厂,包含具体创建哪个类的信息作为参数(通常为String)提交给简单工厂
优缺点:
1. 工厂模式含有必要的判断逻辑,可以决定在什么时候创建哪一个产品的实例,客户端可以免除直接创建产品的责任,而仅仅需要消费产品。简单工厂通过这种做法实现了责任的分割。
缺点:
1.系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,违反了设计模式中针对扩展开放,对修改关闭的原则。
2. 简单工厂模式通常使用静态工厂方法,这使得子类无法继承。
模式图
代码:
将类的创建任务委托给工厂,包含具体创建哪个类的信息作为参数(通常为String)提交给简单工厂
优缺点:
1. 工厂模式含有必要的判断逻辑,可以决定在什么时候创建哪一个产品的实例,客户端可以免除直接创建产品的责任,而仅仅需要消费产品。简单工厂通过这种做法实现了责任的分割。
缺点:
1.系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,违反了设计模式中针对扩展开放,对修改关闭的原则。
2. 简单工厂模式通常使用静态工厂方法,这使得子类无法继承。
模式图
代码: