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进阶学习之Geo的地图定位算法详解)
- phpstudy配置教程(phpStudy2018安装教程及本地服务器的配置方法)
- 在php中与数据库连接的技术(PHP7.0连接DB操作实例分析基于mysqli)
- phpstudy服务器怎么设置(phpstudy本地环境开启.htaccess伪静态方法)
- php脚本通过文件路径批量上传文件(php遍历目录下文件并按修改时间排序操作示例)
- yii2支持php7.2吗(Yii框架通过请求组件处理get,post请求的方法分析)
- 如何解决php跨域问题(php简单检测404页面的方法示例)
- php可以一次下载几个文件(php实现大文件断点续传下载实例代码)
- phpcurl缺点(PHP封装cURL工具类与应用示例)
- OpenLDAP docker使用教程(Docker搭建OpenLDAP+phpLDAPadmin统一用户认证的方法)
- php批量导出所有数据库(php快速导入大量数据的实例方法)
- phpstudy修改为什么进不去(phpstudy2018升级后站点及phpmyadmin打开404解决方案)
- php读取txt乱码怎么办(解决php写入数据库乱码的问题)
- php 实例代码解析(PHP反射学习入门示例)
- php里的fpm是什么(phpfpm的作用和用法)
- php模块使用方法(PHP操作XML中XPath的应用示例)
- 为什么现在社会越来越卷了(现在社会为什么发展那么快呢)
- 直播带货能赚到很多钱吗(直播带货能赚到很多钱吗现在)
- 做网红真的很能赚钱吗(做网红真的很能赚钱吗)
- 10句英语常用(英语常用900句)
- 爱情能当饭吃吗(爱情能当饭吃吗说说)
- 白T恤穿法(白t恤)
热门推荐
- sqlserver字符串截取填充(SQL Server实现split函数分割字符串功能及用法示例)
- 宝塔部署ssl证书(宝塔面板设置SSL并开启HTTPS的方法)
- 腾讯云主机可以挂游戏吗(云主机能挂网络游戏么?)
- sql server 时间与日期函数(SQL Server日期加减函数DATEDIFF与DATEADD用法分析)
- vue滚动条滚动事件(vue实现一个滚动条样式)
- div 左右布局比例(div对齐与网页布局详解)
- 宝塔面板程序目录(将宝塔面板linux版装在/www以外的目录的方法)
- foot rocker怎么使用(stricky footer的三种解决方案详解)
- html5滑动刷新(HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码)
- dockerrun执行脚本(docker run和start的区别说明)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9