博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php设计模式之委托模式
阅读量:7014 次
发布时间:2019-06-28

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

设计了一个cd类,类中有mp3播放模式,和mp4播放模式
改进前,使用cd类的播放模式,需要在实例化的类中去判断选择什么方式的播放模式
改进后,播放模式当做一个参数传入playList函数中,就自动能找到对应需要播放的方法。

一,未改进前

cdInfo[$song] = $song; } public function playMp3($song) { return $this->cdInfo[$song] . '.mp3'; } public function playMp4($song) { return $this->cdInfo[$song] . '.mp4'; } } $oldCd = new cd; $oldCd->addSong("1"); $oldCd->addSong("2"); $oldCd->addSong("3"); $type = 'mp3'; if ($type == 'mp3') { $oldCd->playMp3(); } else { $oldCd->playMp4(); }

二、通过委托模式,改进后的cd类

cdInfo[$song] = $song; } public function play($type,$song){ $name = '\Tools\\'.$type; $obj = new $name; return $obj->playList($this->cdInfo,$song); }}$newCd = new cdDelegate();$newCd->addSong("1");$newCd->addSong("2");$newCd->addSong("3");echo $newCd->play('mp3','1');//只要传递参数就能知道需要选择何种播放模式

转载于:https://my.oschina.net/tongjh/blog/614653

你可能感兴趣的文章
session和cookie实用手记
查看>>
Win10 64bit GTX950 Anaconda3 环境下安装配置TensorFlow
查看>>
【EASYDOM系列教程】之复制节点
查看>>
React 服务端渲染如此轻松 从零开始构建前后端应用
查看>>
gradle 打包不同资源
查看>>
react-native创建android原生模块
查看>>
分享一个基于Node的名片设计网站
查看>>
Express + Ejs实现一个简单的WebServer
查看>>
40 行代码内实现一个 React.js
查看>>
关于5G被激烈讨论的那些争端和冲突
查看>>
中台之上(三):战略和组织结构,业务架构设计中不应被忽视的关键因素
查看>>
AlphaZero进化论:从零开始,制霸所有棋类游戏
查看>>
期待已久的Firefox 39最终顺利发布
查看>>
跨境互联网券商架构最佳实践\n
查看>>
又拍云专注场景化CDN 云CDN加速行业全面演进
查看>>
.NET仓储模式高级用例
查看>>
Netty消息接收类故障案例分析
查看>>
如何理解 Laravel 的 Ioc 容器
查看>>
如何用Uber JVM Profiler等可视化工具监控Spark应用程序?
查看>>
Checkly如何借助Terraform实现零宕机部署
查看>>