您的位置:首页 > 编程语言 > PHP开发

php设计模式-单例模式

2018-02-23 10:15 176 查看
所谓单例,一个类通过接口提供一个实例,不能通过new或者clone创建新的实例。

单例的实现关键,通过一个静态的方法 getInstance实现的,这个方法只返回该类的唯一实例,第一次调用该方法的时候,他创建一个实例,把他存在一个私有的静态变量中,下一次只需要把之前创建的实例返回,即可达到单例的效果

class Log {
static private $instance = NULL;

private function __construct(){
}

private function __clone(){
}

function log( $str ) {
echo $str . PHP_EOL;
}

static function getInstance(){
if( self::$instance == NULL ) {
self::$instance = new Log();
}
return self::$instance;
}
}

Log::getInstance()->log( "warning info" );
Log::getInstance()->log( "error info" );
//下面的报错
new Log();


这里把构造函数和__clone方法声明为private是防止使用者,不小心用new或者clone生成新的实例
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: