php 策略模式工厂模式区别(PHP设计模式之策略模式原理与用法实例分析)
类别:编程学习 浏览量:241
时间:2022-03-30 20:42:30 php 策略模式工厂模式区别
PHP设计模式之策略模式原理与用法实例分析本文实例讲述了PHP设计模式之策略模式原理与用法。分享给大家供大家参考,具体如下:
策略模式(Strategy Pattern)
策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。
策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。
策略模式的三个角色:
1. 抽象策略角色
2. 具体策略角色
3. 环境角色(对抽象策略角色的引用)
实现步骤:
1. 定义抽象角色类(定义好各个实现的共同抽象方法)
2. 定义具体策略类(具体实现父类的共同方法)
3. 定义环境角色类(私有化申明抽象角色变量,重载构造方法,执行抽象方法)
策略模式的代码实例:
|
<?php abstract class baseAgent { //抽象策略类 abstract function PrintPage(); } //用于客户端是IE时调用的类(环境角色) class ieAgent extends baseAgent { function PrintPage() { return 'IE' ; } } //用于客户端不是IE时调用的类(环境角色) class otherAgent extends baseAgent { function PrintPage() { return 'not IE' ; } } class Browser { //具体策略角色 public function call( $object ) { return $object ->PrintPage (); } } $bro = new Browser (); echo $bro ->call ( new ieAgent () ); ?> |
运行结果:
IE
就在编程领域之外,有许多例子是关于策略模式的。例如:
如果我需要在早晨从家里出发去上班,我可以有几个策略考虑:我可以乘坐地铁,乘坐公交车,走路或其它的途径。每个策略可以得到相同的结果,但是使用了不同的资源。
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/qq_23864697/article/details/79571864
您可能感兴趣
- php扩展安装示例(php扩展开发入门demo示例)
- thinkphp支付宝支付(thinkPHP和onethink微信支付插件分享)
- php获取数组中和为指定数的数组(php统计数组不同元素的个数的实例方法)
- linux安装phpstudy(PHPStudy下如何为Apache安装SSL证书的方法步骤)
- phplaravel快速开发平台(laravel框架实现去掉URL中index.php的方法)
- php符串使用教程学习(PHP实现支持CURL字符串证书传输的方法)
- python核心编程内容(顶级大神Linux,Python,Go,PHP之父谁是夜猫子?用Python揭秘!)
- phpredis消息队列(PHP+redis实现微博的推模型案例分析)
- mysql5.7.19下载及安装教程(Apache2.2.16+PHP5.3.3+MySQL5.1.49的配置方法)
- php八大模式详解(php设计模式之工厂模式用法经典实例分析)
- php源码如何导入dw中(php导入文件夹图片保存到dedecms的方法)
- php 十六进制转换为二进制(PHP实现的62进制转10进制,10进制转62进制函数示例)
- php建造者模式实例(PHP工厂模式、单例模式与注册树模式实例详解)
- phpstudy数据库搭建教程交流(phpStudy V8如何修改数据库root密码)
- php设计模式学习(PHP设计模式之PHP迭代器模式讲解)
- php函数的使用方法(PHP中str_split函数的用法讲解)
- 苏志燮赵恩静结婚,韩国四大公共财产变三人,这么快就有替补了(苏志燮赵恩静结婚)
- 《内在美》后,一大波新韩剧来袭,李钟硕朴信惠宋慧乔玄彬回归(一大波新韩剧来袭)
- 给孩子选购保温杯,注意这4个步骤,比颜值更重要(给孩子选购保温杯)
- 保温好 容量大 颜值高 保温杯你给娃娃买对了吗(保温好容量大颜值高)
- 《道德经》 人生避开骄狂,才能免去祸患(道德经人生避开骄狂)
- 郭麒麟(郭麒麟)
热门推荐
- mysql8.0安装教程win10(Windows10下mysql 8.0.22 安装配置方法图文教程)
- docker容器设置网站(docker容器中布置静态网站的实现)
- docker容器的使用过程(详解docker容器的层的概念)
- js网站前端效果(JS如何让你的移动端交互体验更加优秀)
- python图形绘制教程(python绘制漏斗图步骤详解)
- pandas统计多行数据(pandas去重复行并分类汇总的实现方法)
- php微信支付步骤(PHP实现微信提现企业付款到零钱)
- dedecms的简单说明(DEDECMS5.5在国外Linux主机下无法采集的解决方法)
- python 迭代对象必须实现哪些方法(详解python之heapq模块及排序操作)
- 织梦后台常见问题(登录织梦后台提示用户名不存在的解决方法介绍)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9