博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP策略模式
阅读量:6692 次
发布时间:2019-06-25

本文共 929 字,大约阅读时间需要 3 分钟。

策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。

策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。

策略模式的三个角色:

1.抽象策略角色

2.具体策略角色

3.环境角色(对抽象策略角色的引用)

实现步骤:

1.定义抽象角色类(定义好各个实现的共同抽象方法)

2.定义具体策略类(具体实现父类的共同方法)

3.定义环境角色类(私有化申明抽象角色变量,重载构造方法,执行抽象方法)

就在编程领域之外,有许多例子是关于策略模式的。例如:

如果我需要在早晨从家里出发去上班,我可以有几个策略考虑:我可以乘坐地铁,乘坐公交车,走路或其它的途径。每个策略可以得到相同的结果,但是使用了不同的资源。

策略模式非常适合复杂数据管理系统或数据处理系统,二者在数据筛选、搜索或处理的方式方面需要较高的灵活性

demo

<?php

interface pzhang{//抽象策略角色

   public function say();

}

class A implements pzhang{//具体策略角色

    public function say(){

           echo "说see you";

  }

}

class B implements pzhang{

     public function say(){

           echo "说 good bay";

   }

}

class  question{

     private $test;

     public function __construct(Pzhang $pzhang){

         $this->test = $pzhang;

      } 

    public function handle(){

        $this->test->say();

    }

}

$a = new A();

$res = new question($a);

$res->handle();

$b = new B();

$res = new question($b);

$res->handle();

?>

转载于:https://www.cnblogs.com/isuansuan/p/9755502.html

你可能感兴趣的文章
算法(四):图解狄克斯特拉算法
查看>>
如何针对性替换数组里的某几个对象
查看>>
阿里智能工作软件机器人——码栈应用教程,让一切变得自动化
查看>>
Angular service 详解
查看>>
百度研发面经
查看>>
深度解析 Go 语言中「切片」的三种特殊状态
查看>>
Linux中apt与apt-get命令的区别与解释(转)
查看>>
iOS 中多音频处理
查看>>
PHP常用180函数总结
查看>>
React 中的事件处理
查看>>
.NET环境大规模使用OpenTracing
查看>>
Sentry的使用
查看>>
如何在微服务架构中对资源(前端页面+后端接口)进行权限控制
查看>>
前端下载 图片 总结
查看>>
Vue表单输入绑定
查看>>
LINUX下进程打开的文件怎么和底层磁盘关联的?
查看>>
Java 设计模式之命令模式
查看>>
可能是把Java内存区域讲的最清楚的一篇文章
查看>>
PHP中的几个随机数生成函数
查看>>
Anaconda不同envs的pip和python的版本
查看>>