魔兽争霸之PHP设计模式-单件模式[Singleton]

魔兽争霸单例模式
本文通过魔兽争霸游戏应用实例,介绍了单例模式的概念及其在PHP中的实现方式,演示了如何确保一个类仅有一个实例,并提供了全局访问点。

 

前言:我写的关于设计模式的一系列文章。这系列的文章主要针对没接触过设计模式的,或者说接触过但还不是很明白的PHPer。

问题的提出:
可能很多人都写过类,文件操作的,数据库的……
对于数据库的类来说有时候可能被忽略的一个问题是:我们创建类的实例时一般都是通过构造函数连接了数据库。这没错。但是如果我们不注意地创建了多个实例,那么对于数据库资源而言是一种浪费。所以使用单件模式在解决这个问题上就显得很有必要了。

单件模式的作用:
从上面可以看出,单件模式的引入是为了使类的实例只有一个。
那么下面开始我们的类的设计。这里就不以数据库为例子了。从标题可以很明显看出,我这个系列的文章都是以魔兽争霸为例子的。
想玩游戏,那么先打开应用程序WarThree:

 

相信你已经知道了上面代码存在的问题了。
那么,如果我们对类的实例化这一过程进行控制,也就是说不给用户随便打开游戏,我们要在打开之前进行控制。
试试下面代码:

总不能不让人玩游戏吧,那干脆卸载算了!
别激动,改下就能玩了嘛,真是的。

  

 

别急,我忘了,是我的错还不行吗……

 

 

至此,单件模式就搞定啦,再也不用担心不小心开了2个魔兽争霸,玩游戏去咯。什么?!已经凌晨5点多啦?!我晕,先睡个觉先zzzz……
这是我在本论坛第二贴,希望大家多多支持。转载记得请注明出处。谢谢!
以后有时间会继续写魔兽争霸之PHP设计模式。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值