php设计模式--策略模式

策略模式:php

    策略模式咱们没法经过字面意思来理解了:java

        首先,建立一个接口,定义子类的实现规范;ide

        第二步,根据不一样的业务逻辑,书写不一样的方法,同时实现第一步中的接口.
this

        第三步,写一个独立的类,其中有两个方法,第一个为初始化(传入第二步中的子类的对象),第二个方法   为统一的执行类(固然有了接口这个也能够省略了).
spa

以下图:3d

wKiom1ZbrbjzmBriAABr6WDzVyQ876.png

下面是一个完整的demo:excel

    

<?php 对象

//经过接口定义子类实现规范blog

interface Strategy{  接口

public function echoInfo();

}


//实现方法,而且每一个都用不一样的业务逻辑(phper,javaer)

class Phper implements Strategy{        

public function echoInfo()

{

echo "this is phper class";

}

}

class Javaer implements Strategy{

public function echoInfo()

{

echo "this is javaser class";

}

}


//创建一个独立的类,经过其中的一个方法,传入不一样的对象来实现不一样的处理过程

class Done{

//用来存储实例化的对象

private $obj;

//经过传入对象将对象赋给私有属性

public function __construct(Strategy $obj)

{

$this->obj=$obj;

}


//经过统一的实现方法来实现不一样的对象内部的方法(由于有接口的限制,这个也能够省略)

public function go()

{

$this->obj->echoInfo();

}

}


//实例化独立的类,传入不一样的对象参数

$obj=new Done(new Javaer);

//输出结果

$obj->go();

 ?>


策略模式通常用在一些输出结果须要多样话的地方,好比客户可能导出excel表,也可能导出word文件,或者生成一个柱状图等等.

相关文章
相关标签/搜索