单例模式

来源:互联网 发布:windows上的弹球游戏 编辑:程序博客网 时间:2024/06/01 13:19

单例模式

<?php/** * 单例模式 * * @author T.L.Q. emali<hjq_tlq@163.com> */class Single {    private static $_instance = NULL;       // 私有化构造方法,防止被类被实例化(    private function __construct()    {        echo "construct<br />";    }       // 得到该类独一无二的实例    public static function instance()    {        if (!self::$_instance instanceof Single) {            self::$_instance = new Single();        }        return self::$_instance;    }       // 自定义方法    public function test()    {        echo "OK<br />";    }       // 阻止用户复制对象实例    public function __clone()    {        trigger_error('Clone is not allowed.', E_USER_ERROR);    }}// 该类无法实例化,必须通过instance获得该类的实例//$single = new Single();$class = 'Single';$single = $class::instance();// 如果使用克隆则会抛出异常//$singleClone = clone $single;$single->test();$single1 = $class::instance();$single1->test();$single2 = $class::instance();$single2->test();$single3 = $class::instance();$single3->test();$single4 = $class::instance();$single4->test();$single5 = $class::instance();$single5->test();$single6 = $class::instance();$single6->test();$single7 = $class::instance();$single7->test();// 结果/*constructOKOKOKOKOKOKOKOK*/



原创粉丝点击