php设计模式之单例模式

时间:2022-12-11 12:10:12
<?php
/**
* 单例模式定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
* final 防止类被继承重构
*/
final class Single{
//静态存储单例对象
private static $instance;

private function __construct(){
echo "实例化对象" . PHP_EOL;
}

/**
* 返回单例对象
* @Author feiyu
* @DateTime 2017-02-10
* @since [version]
*/
public static function getInterface(){
//判断静态属性是否为空或者是否为单例类型
if(empty(self::$instance) || !(self::$instance instanceof Single)){
self::$instance = new Single();
}

return self::$instance;
}

/**
* 对象工具方法
* @author feiyu
* @dateTime 2017-02-10
*/
public function test(){
echo "hello word";
}

/**
* 防止类被用于克隆
* @author feiyu
* @dateTime 2017-02-10
*/
private function __clone(){
trigger_error("禁止克隆该类",E_USER_WARNING);
}
}

$obj = Single::getInterface();
$obj->test();