怎么在PHP中使用策略模式?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
策略模式(Strategy Pattern)
策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。
策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。
策略模式的三个角色:
1. 抽象策略角色
2. 具体策略角色
3. 环境角色(对抽象策略角色的引用)
实现步骤:
1. 定义抽象角色类(定义好各个实现的共同抽象方法)
2. 定义具体策略类(具体实现父类的共同方法)
3. 定义环境角色类(私有化申明抽象角色变量,重载构造方法,执行抽象方法)
策略模式的代码实例:
<?php abstractclassbaseAgent{//抽象策略类 abstractfunctionPrintPage(); } //用于客户端是IE时调用的类(环境角色) classieAgentextendsbaseAgent{ functionPrintPage(){ return'IE'; } } //用于客户端不是IE时调用的类(环境角色) classotherAgentextendsbaseAgent{ functionPrintPage(){ return'notIE'; } } classBrowser{//具体策略角色 publicfunctioncall($object){ return$object->PrintPage(); } } $bro=newBrowser(); echo$bro->call(newieAgent()); ?>
运行结果:
IE
就在编程领域之外,有许多例子是关于策略模式的。例如:
如果我需要在早晨从家里出发去上班,我可以有几个策略考虑:我可以乘坐地铁,乘坐公交车,走路或其它的途径。每个策略可以得到相同的结果,但是使用了不同的资源。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注恰卡编程网行业资讯频道,感谢您对恰卡编程网的支持。
php字符串增加1如何实现
php字符串增加1如何实现这篇“php字符串增加1如何实现”文章的...
php如何判断字符串是否有中文
php如何实现字符串去掉头尾
php字符串的组成是什么
php字符串的组成是什么这篇文章主要讲解了“php字符串的组成是什...
php如何让Swoole/Pool进程池实现Redis持久连接
php如何让Swoole/Pool进程池实现Redis持久连接本篇...
php字符串长度不一致如何解决
php时区不正确如何解决
php+fread()乱码如何解决
php+fread()乱码如何解决本篇内容介绍了“php+frea...
php explode报错如何解决
linux Centos如何安装PHP7
linuxCentos如何安装PHP7今天小编给大家分享一下li...
用户名
密码
记住登录状态 忘记密码?
邮箱
确认密码
我已阅读并同意 用户协议