美文网首页
php - 工厂模式理解和学习

php - 工厂模式理解和学习

作者: 破晓丨 | 来源:发表于2018-03-05 23:17 被阅读0次

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

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

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

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

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

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

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

当你需要对一个事件做处理,添加了一个类,这个类里面有很多方法,然后你在外部去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(); //更换成所要替换的类
            ...
      }
}

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

相关文章

网友评论

      本文标题:php - 工厂模式理解和学习

      本文链接:https://www.haomeiwen.com/subject/ukmkfftx.html