简单工厂模式 #
Simple Factory Pattern,又称为静态工厂方法 (Static Factory Method) 模式
通过传入参数获取到对象,不关心创建对象的细节。
// create 是静态方法,直接用类调用(不需要实例化)
object1 = Factory.create(1);
object2 = Factory.create(2);
优点
- 将创建实例的工作与使用实例的工作分开,使用者不必关心类对象如何创建,实现了解耦;
- 把初始化实例时的工作放到工厂里进行,使代码更容易维护。更符合面向对象的原则 & 面向接口编程,而不是面向实现编程。
缺点
- 工厂类集中了所有实例(产品)的创建逻辑,一旦这个工厂不能正常工作,整个系统都会受到影响;
- 违背 “开放 - 关闭原则”,一旦添加新产品就不得不修改工厂类的逻辑,这样就会造成工厂逻辑过于复杂。
- 简单工厂模式由于使用了静态工厂方法,静态方法不能被继承和重写,会造成工厂角色无法形成基于继承的等级结构。
- 静态方法可以被继承
应用场景
- 客户如果只知道传入工厂类的参数,对于如何创建对象的逻辑不关心时;
- 当工厂类负责创建的对象(具体产品)比较少时。
代码示例 #
叶王 © 2013-2024 版权所有。如果本文档对你有所帮助,可以请作者喝饮料。