php单态设计模式

单例设计模式就是要一个类只能实例化一个对象。

要想让一个类只能实例化一个对象,就要让类先不能实例化对象,就是构造方法私有。

现在,要想实例化改类必须通过访问静态方法来实例化改类

为了防止实例多次,需要通过一个成员变量来控制加以判断

因为静态方法不能访问非静态成员,所以声明的成员也要是静态的,同时防止外部访问该成员,还要私有

class Demo{
    
    private static $obj = null;  //声明一个私有的,静态的成员属性$obj;
    
    private function __construct(){}  //构造方法私有,防止new实例化。
    
    static function createObj(){     //只能通过静态方法实例化对象
            if(is_null(self::$obj))
                self::$obj = new self();
                
            return self::$obj;
    }
    
    function query($sql){
        echo $sql;
    }
}

/*通过静态方法实例化*/
$db = Demo::createObj();

//访问对象中的成员
$db->query("select * from user");  

 

php单态设计模式,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。