单例模式,过程及案例

原创 2018-12-20 17:16:11 227
摘要:1.构造方法私有化 克隆方法私有化 2.声明一个静态属性用于存储已实例化对象 3.开放一个静态方法用于对外提供对象4.外部获取对象时检测静态属性中是否存储有对象,如果有,则将对象返回,如果没有,实例化一个对象存入静态属性并将对象返回<?php  class test{ //私有化构造方法 private function __construct(){} //私有化克隆方法

1.构造方法私有化 克隆方法私有化

2.声明一个静态属性用于存储已实例化对象

3.开放一个静态方法用于对外提供对象

4.外部获取对象时检测静态属性中是否存储有对象,如果有,则将对象返回,如果没有,实例化一个对象存入静态属性并将对象返回

<?php 

class test{

//私有化构造方法

private function __construct(){}

//私有化克隆方法

private function __clone(){}


//声明静态属性

protected static $obj = null;


public static function getObj(){

if(is_null(self::$obj)){

static::$obj = new self();

}

return self::$obj;

}

}


$res1 = test::getObj();

$res2 = test::getObj();

var_dump($res1);

echo "<br />";

var_dump($res2);

 ?>


批改老师:天蓬老师批改时间:2018-12-20 17:25:52
老师总结:单例模式,有不止一种实现方法, 有空看一下其它方案

发布手记

热门词条