简单工厂模式
1.1模式动机
当我们希望使用一个对象时,不需要知道这些对象所对应的类的名字,只需要知道该类所对应的参数,并提供一个调用方便的方法,把参数传入方法即可返回所需要的对象,此时,就可以使用简单的工厂模式。
1.2模式定义
简单
的工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,属于创建型模式。
简单
工厂模式中,可以根据传递的参数不同,返回不同类的实例。简单工厂模式定义一个类,这个类专门用于创建其他
类的实例,这些被创建的类通常都有一个父类。
1.3模式结构
Factory:工厂角色,用于创建实例类的工厂,提供一个方法,该方法根据传入参数的不同而动态的返回不同的例。
Product:抽象产品角色。为所用被创建类的父类。
ConcreteProduct:具体产品角色。被工厂创建的类。
1.4简单工厂模式的优点
1、简单工厂模式实现了对责任的分割,提供专门的工厂类用于创建对象。
2、客户端无需知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可,对于一些复杂的类名,通过简单的工厂模式可以减少使用者的记忆量。
1.5简单工厂模式的缺点
1、由于工厂类集中了所用产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。
2、使用简单工厂模式将会增加系统中类的个数,在一定程序上增加了系统的复杂和理解难度。
3、系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,在产品类型较多时,有可能造成工厂逻辑过于复杂,不利于系统的扩展和维护。
1.6总结
1、将对象的创建和对象本身业务处理分离可以降低系统的耦合度,使两者修改起来都相对容易。
2、简单的工厂模式最大的问题在于工厂类的职责相对过重,增加新的产品需要修改工厂类的判断逻辑,这一点与开闭原则相违背。
3、简单工厂模式的要点在于:当你需要什么,只需要传入一个正确的参数,就可以获取你所需要的对象,而无需知道其创建细节。