单例模式就像一个人有一个大脑、当我们要思考的时候只能用大脑。也就一个实例对象。
多例模式就像一个人可以有两个收一样、可以选择其中一个用、或者两只手其上证、但是还是有一个数量的限制。就像一个正常的人都有两只手。
贴代码
- <?php
- /**
- * 多例模式
- * @author youjw221@gmail.com
- * @QQ 2313090176
- *
- */
- class Multi
- {
- //最多产生的实例个数
- private static $_maxInstanceNum = 2;
- //存放实例的数组
- private static $_instanceArr = array();
- //用于标识对象
- private $tmp;
- //控制初始化实例数组参数
- private static $is_init = 0;
- /**
- * 初始化对象的数组
- */
- static function intStance()
- {
- if( emptyempty( self::$is_init ) )//防止多次调用
- {
- for( $i=0;$i<self::$_maxInstanceNum;$i++)
- {
- self::$_instanceArr[$i] = new Multi($i);
- }
- self::$is_init++;
- }
- }
- /**
- * 私有话构造函数
- * @param unknown_type $i
- */
- private function __construct($i)
- {
- $this->tmp = $i;
- }
- /**
- * 获取多例中的一例
- */
- public static function getInstance()
- {
- self::intStance();
- $randNum = rand(0, 1);
- return self::$_instanceArr[$randNum];
- }
- //测试用
- public function testTmp()
- {
- echo $this->tmp;
- }
- }
- ?>
转载于:https://blog.51cto.com/1400128/801511