php - 工厂模式理解和学习

前几天写了对单列模式的理解和学习技巧,这只是我个人对于这个开发模式的认识和理解,如果大家有更好的解释可以推荐给我啊,一起学习,那么今天就一起学习下什么又是工厂模式呢?

工厂模式是一种类,建立了一个工厂来根据所需来创建对象,这种方式在多态性编程中是很重要的,允许动态替换类,修改配置等。

工厂模式分为:简单工厂模式、工厂方法模式、抽象工厂模式。

简单工厂模式,通过静态方法创建对象。可以理解成,只负责生产同一等级结构中的任何一个产品,但是不能新增产品。

工厂方法模式,去掉了简单工厂模式中方法的静态属性,使其可以被子类集成,定义一个创建对象的接口,让子类去决定实例化哪个类。可以理解成,用来生产同一等级结构中的固定产品,但是支持增加产品。

抽象工厂模式,提供一个创建一系列相关或者相互依赖的对象的接口。可以理解成,用来生产不用类型的全部产品,但是不能增加新品,支持增加新的类型。

以上这些解释呢 是从网上找的,感觉实在是很不好理解,于是自己总结了下:

当你需要对一个事件做处理,添加了一个类,这个类里面有很多方法,然后你在外部去new这个类,进行实例化,然后进行接下来的操作。
当忽然有一天,这个类对于事件的操作作用不大了,需要对这个类进行更换和替代的时候,你散落在项目各个地方的new类就会成为你的负担,一个两个也许还好,但是如果有几十一百个呢,在这种情况下,如果你在写这个类的时候使用了工厂模式,那么就会相当的简单,提高了代码编写和执行的效率!

看代码:

你需要这么一个类

class news{
      public function look(){}

      public function edit(){}

      public function delete(){}
}

创建一个新的类来返回news的实例

class save{
      public static function factory(){
            return new news();
      }
}

这样你在需要操作news类的时候直接

$news = save::factory();
$news->look(); //执行news内的方法

如果一旦发现news不够用或者需要更换了 那么直接更换save类即可:

class save{
      public static function factory(){
            return new news_1(); //更换成所要替换的类
            //return new news_2(); //更换成所要替换的类
            ...
      }
}

这就是简单的工厂模式,你看懂了吗?

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 9,403评论 1 15
  • 一个UML类图 类之间的关系 类的继承结构表现在UML中为:泛化(generalize)与实现(realize) ...
    僚机KK阅读 3,914评论 0 0
  • 简单工厂模式虽然简单,但存在一个很严重的问题。当系统中需要引入新产品时,由于静态工厂方法通过所传入参数的不同来创建...
    justCode_阅读 4,966评论 1 9
  • 创建型模式 抽象工厂模式(abstract facroty) 3.1模式动机 在工厂方法模式中具体工厂负责生产具体...
    僚机KK阅读 4,086评论 0 2
  • 《时间管理—如何充分利用你的24小时》作者:吉姆·兰德尔 1、自我意识是先决条件 只有当你真正意识到你是如何支配时...
    清寒泠冽阅读 1,337评论 1 3

友情链接更多精彩内容