设计模式 -- 简单工厂模式

为什么使用工厂模式?

     工厂模式是创建在对象的上面,就是把创建对象的过程封装起来,这样可以产生一个新的对象。减少代码进行复制粘贴,耦合关系重,牵一发动其他部分代码。

1、含义

  • 简单工厂模式又叫静态方法模式
  • 显示生活中,工厂是生产产品的;同样在设计模式中,简单工厂模式我们可以理解为负责生产对象的一个类,称为“工厂类”;
2、模式组成

     

组成(角色) 关系 作用
抽象产品(product) 具体产品的父类 描述产品的公共接口
具体产品(concrete  product ) 抽象产品的子类;工厂类创建的目标类 描述生产的具体产品
工厂(creator) 被外界调用  传入不同的参数创建不同具体产品类的实例
3、典型事例:

     php可能要链接mysql,也可能要链接sqlserver,还有其他数据库,那么就要做一个抽象的数据库类。

     举个栗子:方便面产地描述接口,也就是抽象产品

     

     具体的产品类 [康师傅]

     

    今麦郎

    

   准备做完了,来了解一下方便面的具体产地 【工厂

   

  假如我想了解康师傅面

  

  输出: 康师傅 -- 中国台湾

4、优点

  • 将创建实例的工作与使用实例的工作分开,使用者不必关系类对象如何创建,实现了解耦;
  • 把初始化实例时的工作放到工厂里进行,使代码更容易维护。更符合面向对象的原则  

5、缺点:

  • 扩展性差(无法灵活的扩展和维护),违背了开闭原则 [ 对于修改时封闭的,对于扩展是开放的 ]
  • 工厂类集中了所有的实例创建的逻辑,一旦工厂不能正常工作,整个系统都会受到影响。
  • 静态方法不能被继承和重写,会造成工厂角色无法形成基于继承的等级结构。

6、应用场景:

        客户如果只知道传入工厂类的参数,对于如何创建对象的逻辑不关心时;

        工厂类负责创建的对象比较少时;




猜你喜欢

转载自blog.csdn.net/sunny1660/article/details/79527105