PHP的单例设计模式详解
/* 单例设计模式 (单态) 定义: 一个类 只能允许有 一个对象存在.
1.不让进: 使类不能被实例化
2.留后门: 设置静态方法
3.给对象: 在静态方法里实例化该类
4.判初夜: 判断是否是 第一次产生该类的对象
5.设静态: 静态方法里 要使用静态属性
*/
/*//1.不让进: 使类不能被实例化-----------------
class Test {
// 设置 一个封装的构造方法
private function __construct()
{
//占位, 我就是不让你NEW我~~~
}
}*/
/*//2.留后门: 设置静态方法--------------------
class Test {
// 设置 一个封装的构造方法
private function __construct()
{
//占位, 我就是不让你NEW我~~~
} //后门
public static function getObject()
{
echo "啊,我是后门,进吧!
";
}
}*/
/*//3.给对象: 在静态方法里实例化该类------------------
class Test {
// 设置 一个封装的构造方法
private function __construct()
{
//占位, 我就是不让你NEW我~~~
} //后门
public static function getObject()
{
echo "啊,我是后门,进吧!
"; return new self();//实例化一个对象给你
}
}*/
/*//4.判初夜: 判断是否是 第一次产生该类的对象------------------
class Test {
private $obj = null;//属性值为对象,默认为null // 设置 一个封装的构造方法
private function __construct() {
//占位, 我就是不让你NEW我~~~
} //后门
public static function getObject()
{
echo "啊,我是后门,进吧!
";
if ($this->obj === null)
{
$this->obj = new self();//实例化一个对象
}
//返回的属性 其实就是本对象
return $this->obj;
}
}*/
//5.设静态: 静态方法里 要使用静态属性------------------
class Test {
private static $obj = null;//属性值为对象,默认为null
// 设置 一个封装的构造方法
private function __construct()
{
//占位, 我就是不让你NEW我~~~
} //后门
public static function getObject()
{
echo "啊,我是后门,进吧!
";
if (self::$obj === null)
{
self::$obj = new self();
//实例化一个对象
}
//返回的属性 其实就是本对象
本文出至:学新通博客网络博客; return self::$obj;
}
}
/*Test::getObject();//使用静态方法访问该类里的方法 exit;*/
$t1 = Test::getObject();
$t2 = Test::getObject();
$t3 = Test::getObject();
$t4 = Test::getObject();
$t5 = Test::getObject();
$t6 = Test::getObject();
$t7 = Test::getObject();
$t8 = Test::getObject();
//判断 两个对象 是否是同一个对象
if ($t1 === $t6) {
echo "哦, Yes! 是同一个实例
";
} else {
echo "哦, No! 不是同一个实例
";
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanecih
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24