码迷,mamicode.com
首页 > Web开发 > 详细

php 单例模式

时间:2015-05-11 19:30:51      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

单例模式特点:在程序执行过程里,只有一个类对象存在

单例模式的三要素:

1.构造方法私有化(禁止类外部用new的方式实例化类)

2.禁止克隆(允许克隆的话,将可以克隆出多个对象)

3.拥有一个静态方法,方法中进行仅一次对象实例化,允许类外部调用

例子如下:

class Single {

        private static  $singleOb;

        private function __construct() {
                
        }

        static function single() {
                if (!self::$singleOb instanceof Single) {//判断self::$singleOb中有没有Single类的实例化对象
                        self::$singleOb = new Single();
                        return self::$singleOb;
                } else {
                        return self::$singleOb;
                }
        }

        public function __clone() {
                
                trigger_error(‘Clone is not allow‘ ,E_USER_ERROR);//报错
        }

        public function test() {
                echo "single test";
        }

}

测试:

1.正确方式
$singleOb = Single::single(); var_dump($singleOb); $singleOb -> test();

2.禁止克隆 $oc=clone($singleOb); var_dump($oc);

3.禁止外部调用构造函数 $ob = new Single(); $ob -> test();

 

php 单例模式

标签:

原文地址:http://www.cnblogs.com/xiaoyueer/p/4495133.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!