温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php设计模式--策略模式

发布时间:2020-04-24 16:33:24 来源:网络 阅读:397 作者:wzh1044872145 栏目:web开发

策略模式:

    策略模式我们无法通过字面意思来理解了:

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

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

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

如下图:

php设计模式--策略模式

下面是一个完整的demo:

    

<?php 

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

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文件,或者生成一个柱状图等等.

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI