Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

单例模式之php实现

$
0
0

单例模式保证某个类只有一个实例;

1,静态成员变量保存类的唯一实例

2,声明构造函数和克隆方法为私有,防止new一个实例

3,提供一个公共的静态方法来访问这个实例,返回唯一实例的的引用

<?

class InstanceDemo
{

    private static $_instance;//静态成员变量保存唯一的实例


    private function __construct()//构造函数
    {
        echo 'I am Construceted';
    }

    public static function GetInstance()
    {
        if(!isset(self::$_instance))
        {
            $c=__CLASS__;
            self::$_instance=new $c;//new  self()
        }
        return self::$_instance;
    }


  //覆盖__clone()方法,禁止克隆 

    private function __clone()  
    {  
        echo "禁止clone";
    }

        function test()
    {
        echo("test  instance");

    }
}
   //调用静态的共有方法得到唯一的一个实例
    $test = InstanceDemo::GetInstance();
    $test->test();
    //禁止克隆哦
    $test_clone = clone $test;

?>
作者:luyee2010 发表于2013-2-19 0:28:36 原文链接
阅读:84 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>