定义:定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为简单工厂模式中用于创建实例的方法是静态方法,因此简单工厂模式又被称为静态工厂方法模式。
要点:
1、当你需要什么,只需要传入一个正确的参数,就可以获取你所需要的对象,而无需知道其创建细节。
角色:
1、Factory(工厂角色):工厂类,简单工厂的核心,负责实现创建所有产品实例的内部逻辑;工厂类可以被外界直接调用,创建所需的产品对象;提供静态方法,以生成指定类
2、Product(抽象产品角色):创建所有对象的父类,封装了各种产品对象的公有方法。
3、ConcreteProduct(具体产品角色):工厂模式的创建目标,所有被创建的对象都充当这个角色的某个具体类的实例。
UML关系类图:
总结:
1、客户端可以免除直接创建产品对象的职责,而仅仅消费产品,简单工厂模式实现了对象创建和实验的分离。
2、客户端无需知道创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可。
3、通过引入配置文件,可以在不修改任何客户端代码的情况下更换和新增新的具体产品类。
4、扩展困难,一旦新加新产品就不得不修改工厂逻辑,在产品类型较多时,有可能造成工厂逻辑过于复杂,不利于系统的扩展和维护。
适用场景:
1、工厂类复杂创建的对象比较少,不会造成工厂方法中的业务逻辑太过复杂。
2、客户端只知道传入工厂类的参数,对于如何创建对象并不关心。
网友评论