面向对象编程之单态设计模式

来源:互联网 发布:fanuc pmc编程说明书 编辑:程序博客网 时间:2024/05/01 12:17
<?php
//单态(单例)设计模式:只让一个类只能创建一个对象

class person{
    static $obj=null;
    //要让一个类只能创建一个对象则得先让这个类不能创建对象,所以可以先将构造方法私有化;
    private function __construct(){
        
    }
    //通过类调用静态方法的形式来创建对象,但是这样可以在类外部多次调用这个静态方法来创建多个对象也还不能达到我们的要求
    static function getobj(){
        //注意:在类中的方法中使用类中的静态属性时记得加self
        if(is_null(self::$obj)){
            //通过在类中的方法来创建对象
        self::$obj=new self;
        }
        //如果多次调用该静态方式创建对象时,如果该对象已经存在,则直接返回之前已经创建完的对象拿过去使用,不用重新创建
        else{
            return self::$obj;
        }
    }

    function __destruct(){
        echo "##############<br>";
    }
}
//第一次调用该静态方法创建对象时,因为$obj为空所以会创建一个新的对象;
person::getobj();
//多次调用该静态方法时,因为$obj已经存在所以不会重新创建对象
person::getobj();
person::getobj();
person::getobj();
person::getobj();
//经过多次调用该静态方法,只创建了一个对象,所以释放前只会执行一次析构方法,故只会输出一次################;
?>
原创粉丝点击