摘要:单例模式的类具有以下4个特点:1. 构造器私有化,为了防止外部代码使用new来创建对象;2. 克隆私有化,为了防止外部代码使用clone克隆当前类的实例;3. 拥有一个保存类的实例的静态成员变量;4. 拥有一个对外接口创建并返回当前类的唯一实例的公共的静态方法;单例类不能再在其它类中直接实例化,只能被其自身实例化;也不会创建实例副本。class Greeting {  
单例模式的类具有以下4个特点:
1. 构造器私有化,为了防止外部代码使用new来创建对象;
2. 克隆私有化,为了防止外部代码使用clone克隆当前类的实例;
3. 拥有一个保存类的实例的静态成员变量;
4. 拥有一个对外接口创建并返回当前类的唯一实例的公共的静态方法;
单例类不能再在其它类中直接实例化,只能被其自身实例化;也不会创建实例副本。
class Greeting {
private $greet;
private function __construct(){}//构造器私有化,为了防止外部代码使用new来创建对象。
private function __clone(){} //克隆私有化,为了防止外部代码使用clone克隆当前类的实例。
static public $instance;//创建类的内部静态属性,保存类的唯一实例
static public function getinstance(){//创建一个外部接口,创建并返回当前类的唯一实例
if(!self::$instance) self::$instance = new self();
return self::$instance;
}
public function set_greet($words){
$this->greet = $words;
}
public function get_greet(){
return $this->greet;
}
}
$instance_1 = Greeting::getinstance();
$instance_2 = Greeting::getinstance();
$instance_1->set_greet('good evening');
$instance_2->set_greet('good morning');
echo $instance_1->get_greet();//输出:good morning
echo "<br>";
echo $instance_2->get_greet();//输出:good morning
批改老师:韦小宝批改时间:2018-12-15 09:52:26
老师总结:PHP中的设计模式是源于java!设计模式现在已经成了非常重要的一直代码编写方式!