设计模式-简单工厂模式


简单工厂模式又称为静态工厂模式,属于类创建型模式

简单工厂模式包含三个角色

1.Factory(工厂角色):负责实现创建所有实例的内部逻辑

2.Product(抽象产品角色):是所创建的所有对象的父类,负责描述所有实例所共有的公共接口

3.ConcreteProduct(具体产品角色):创建目标,所有创建的对象都充当这个角色的某个具体类的实例

简单工厂模式最大的问题在于工厂类的职责相对过重,增加新的产品需要修改工厂类的判断逻辑,与开闭原则相违背

简单工厂模式的要点在于:当你需要什么,只需要传入一个正确的参数,就可以获取你所需要的对象,而无需知道其创建细节

简单工厂模式的优点:

  1.工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建对象的责任,而仅仅消费产品;

  2.可以减少使用者的记忆量

  3.通过引入配置文件,提高了系统的灵活性

简单工厂模式的缺点:

  1.由于工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响

  2.使用简单工厂模式将会增加系统中类的个数,在一定程度上增加了系统的复杂度和理解难度

  3.系统扩展困难,不利于系统的扩展和维护

  4.简单工厂模式由于使用了静态工厂方法,造成角色无法形成基于继承的等级结构