• 技术文章 >后端开发 >PHP问题

    php工厂方法模式的好处是什么

    长期闲置长期闲置2022-03-25 18:35:05原创246

    PHP工厂方法模式的好处是:核心类只需要关注工厂类的接口,而具体的产品实例交给具体的工厂子类去创建。在该模式下,通过定义一个抽象的核心工厂类,并定义创建产品的接口,使创建具体产品实例的工作延迟到其工厂子类去完成。

    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。

    php工厂方法模式的好处是什么

    此模式中,通过定义一个抽象的核心工厂类,并定义创建产品对象的接口,创建具体产品实例的工作延迟到其工厂子类去完成。

    这样做的好处是核心类只关注工厂类的接口定义,而具体的产品实例交给具体的工厂子类去创建。当系统需要新增一个产品,无需修改现有系统代码,只需要添加一个具体产品类和其对应的工厂子类,是系统的扩展性变得很好,符合面向对象编程的开闭原则。

    <?php
    interface Animal{
      public function run();
      public function say();
    }
    class Cat implements Animal
    {
      public function run(){
          echo "I ran slowly <br>";
      }
      public function say(){
          echo "I am Cat class <br>";
      }
    }
    class Dog implements Animal
    {
      public function run(){
          echo "I'm running fast <br>";
      }
      public function say(){
          echo "I am Dog class <br>";
      }
    }
    abstract class Factory{
      abstract static function createAnimal();
    }
    class CatFactory extends Factory
    {
      public static function createAnimal()
      {
          return new Cat();
      }
    }
    class DogFactory extends Factory
    {
      public static function createAnimal()
      {
          return new Dog();
      }
    }
     
    $cat = CatFactory::createAnimal();
    $cat->say();
    $cat->run();
     
    $dog = DogFactory::createAnimal();
    $dog->say();
    $dog->run();

      工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了面向对象的多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。

    这个核心类仅仅负责给出具体工厂必须实现的接口,而不负责产品类被实例化这种细节,这使得工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。

    推荐学习:《PHP视频教程

    以上就是php工厂方法模式的好处是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php
    上一篇:php查询数组有多少元素可以吗 下一篇:php怎么利用key去掉数组的指定元素
    千万级数据并发解决方案

    相关文章推荐

    • php preg_match会匹配几次• php中静态方法可以访问非静态方法吗• php中事务是什么意思• 归纳整理39道PHP面试题(总结分享)• php中整型是什么意思
    1/1

    PHP中文网