加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

策略模式--单一模式

发布时间:2020-12-13 20:28:56 所属栏目:百科 来源:网络整理
导读:单例模式是指在应用程序的范围内只对指定的类创建一个实例。 单例模式包含的对象只有一个,就是单例本身。使用单例模式的类通常有一个私有的构造函数和一个私有的克隆函数,确保用户无法通过创建对象或者克隆的方法对其进行实例化。除此以外模式中还包括一个

单例模式是指在应用程序的范围内只对指定的类创建一个实例。
单例模式包含的对象只有一个,就是单例本身。使用单例模式的类通常有一个私有的构造函数和一个私有的克隆函数,确保用户无法通过创建对象或者克隆的方法对其进行实例化。除此以外模式中还包括一个静态私有成员变量$instance 与静态方法getInstance. getInstance 方法负责对其本身实例化,然后将这个对象存储在$instance静态变量中,以确保只有一个实例被创建。

以下是一个简单的单例模式例子,通过对单例属性$switch的设置实现了对开关状态的改变。

<?php
class Lock
{
static private $instance = NULL;
private $switch = 0;

static function getInstance(){
if(self::$instance == NULL){
self::$instance = new Lock();
}
return self::$instance;
}
private function Lock()
{
}
private function _clone()
{}
function setLock()
{
if($this->switch == 0)
{
$this->switch = 1;
}
else $this->switch = 0;
}

function getLock()
{
return $this->switch;
}

Lock::getInstance()->setLock();

if(Lock::getInstance()->getLock() == 0)
echo "开关状态:关";
else
echo "开关状态:开";
}
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读