欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

简单工厂模式和策略模式结合使用php

程序员文章站 2022-06-02 20:36:49
...

策略模式是有客户端自行实例化算法类的,而简单工厂模客户端只传参数,不关心对象的生成。 结合两种模式,可以在使用策略模式的时候客户端不再生成算法的对象。修改策略模式的配置类即可。 在之前策略模式基础上,修改如下 ?php/* * 策略模式:定义一系列算

策略模式是有客户端自行实例化算法类的,而简单工厂模客户端只传参数,不关心对象的生成。

结合两种模式,可以在使用策略模式的时候客户端不再生成算法的对象。修改策略模式的配置类即可。

在之前策略模式基础上,修改如下

cg = new category_a();break;
        	case 'b': $this->cg = new category_b();break;
        	case 'c': $this->cg = new category_c();break;
        	default: $this->cg = new handel_error();break;
        }
    }
     
    public function dodo(){
        return $this->cg->dosomething();//同一方法作用于不同类的对象,产生不同的结果,这在php中就是多态
    }
}
 
//客户端调用,由客户自己决定使用哪种策略,即客户自行实例化算法类。区别于简单工厂模式
//简单工厂模式是对象的创建模式,客户端不创建对象,只给出参数,由工厂方法来决定创建哪一个实例
//也就是说,简单工厂模式客户端只传参数,策略模式客户端传算法实例
$m = new context('b');
$m->dodo();
?>