单态模式
2015-11-24 14:25
232 查看
<?php //不使用final,允许继承 class cheat { //快速建造的生效状态,用private保护,同时设置static让所有的作弊对象共享 private static $fastBuild = false; //设置快速建造的生效状态的方法,用public为了能够公开调用 public function setStatus($input) { //如果输入的秘籍正确,operation cwal是快速建造的秘籍 if($input === 'operation cwal') { //像开关一样,逆反状态 self::$fastBuild = !self::$fastBuild ; } } //读取快速建造的生效状态的方法,用public为了能够公开调用 public function getStatus() { return self::$fastBuild ; } } $cheatInstance1 = new cheat();//新增一个作弊对象 var_dump( $cheatInstance1->getStatus() );//打印状态 $cheatInstance1->setStatus('operation cwal');//输入秘籍 var_dump( $cheatInstance1->getStatus() );//打印状态 $cheatInstance2 = new cheat();//新增一个作弊对象 var_dump( $cheatInstance1->getStatus() );//打印状态 发现和前一个对象共享了同一个状态 /*结论:单态模式不是通过唯一对象来保持一致,它将相关的成员设置为static, 这样即使存在很多个它的对象,但它们共享成员,保持状态的一致 单态模式用途总结:确保某个类所有的对象的成员在某些属性上都一致,同时允许灵活的继承这各类 但相对单件模式而言,系统资源开销要大一些。 单态模式实现总结:把所有相关的成员设置为static。 */ ?>
相关文章推荐
- 在FPGA上优化实现复数浮点计算
- 观察者模式
- centos6 升级openssh7.0
- js兼容性问题(转移)
- iOS开发--启动图片launch Image Source 和 launchScreen.xib
- CSS学习<5>
- WM_PAINT介绍及OnPaint()函数的作用原理
- JAVA使用JDBC操作数据库
- Log4j 2.0在开发中的高级使用详解—读取配置文件
- 不同浏览器上中文文件名的下载乱码问题
- 解决复选框编辑页面回显问题
- 关于从网络上获取图片后自适应cell并且不失真的问题
- RSA算法原理(二)
- python2.7(含学习视频)
- Hdoj find the mincost route
- 播放应用的资源音乐
- Oracle表分区和索引分区汇总
- 转: android sdk for mac
- iOS Autolayout笔记
- ORACLE SQL性能优化系列 (一)