博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中介者模式
阅读量:5917 次
发布时间:2019-06-19

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

0; } //一旦科技建筑造好了或者被摧毁,调用这个方法,参数$techBuildingName代表建筑名称 //$add为布尔值,true表示增加(建造),false代表减少(摧毁) public static function changeTech ($techBuildingName, $add) { //建造 if ($add) { //增加数量 self::$techBuilding[$techBuildingName]++; } else { //减少数量 self::$techBuilding[$techBuildingName]--; } }}/*科技站类 * * 科技站,在每次建立时,触发中介者记录科技站的数量加1 * 科技站,在每次摧毁时,触发中介者记录科技站的数量减1 * * */class ScienceFacility{ //构造方法 public function __construct() { Mediator::changeTech('ScienceFacility', true); } //析构方法 public function __destruct() { Mediator::changeTech('ScienceFacility', false); }}/*飞机场类 * * 飞机场新建后,如果要制作科技球,就直接去问中介者,看中介记录的科技站数量是不是存在 * * */class Starport{ //制造科技球的方法 public function createScienceVessel() { //询问中介者,决定是否能制造科技球 echo Mediator::isTechAllow('ScienceFacility')?'可以制造科技球':'不能制造科技球'; }}$scienceFacility1 = new ScienceFacility();//造一个科技站$scienceFacility2 = new ScienceFacility();//再造一个科技站$starport = new Starport();//造一个飞机场$starport->createScienceVessel();//建造科技球,结果是能够unset($scienceFacility1);//一个科技站被摧毁$starport->createScienceVessel();//这时建造科技球,结果是能够,因为还有一个科技站unset($scienceFacility2);//另一个科技站被摧毁$starport->createScienceVessel();//这时建造科技球,结果是不行?>

 

转载于:https://www.cnblogs.com/jiufen/p/5006474.html

你可能感兴趣的文章
diff程序的算法
查看>>
Netfilter策略路由和uRPF
查看>>
windows7/windows2008修改远程桌面连接并修改防火墙配置脚本
查看>>
NIST:制定Cybersecurity的框架进行时
查看>>
FlashXP加密方式的一种破解方法
查看>>
Linux 是如何分区格式化磁盘并挂载使用的?
查看>>
DBUnit数据库测试
查看>>
mongoDB入门
查看>>
求两个已排序数组的交集
查看>>
Exchange Server 2007的备份与恢复操作
查看>>
App架构设计经验谈:接口”安全机制”的设计
查看>>
SCCM2007的部署
查看>>
RAID磁盘阵列基本知识
查看>>
创建 OVS vlan100 netwrok - 每天5分钟玩转 OpenStack(137)
查看>>
网络资源
查看>>
limits.conf生效问题
查看>>
ORA-00600: internal error code, arguments: [25013] 错误处理
查看>>
如何将数字(包括double型)转换为字符串
查看>>
CCNA之基本命令集
查看>>
Hyper-V 3虚拟机快照之一 快照应用介绍
查看>>