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

为什么使用工厂模式?

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

1、含义

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

     

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

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

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

     

     具体的产品类 [康师傅]

     

    今麦郎

    

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

   

  假如我想了解康师傅面

  

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

4、优点

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

5、缺点:

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

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

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值