class Single
{
static private $instance = null;
// 禁止对象继承或者new 这个对象
private function __construct()
{
}
public static function getInstance()
{
if (!self::$instance) {
self::$instance = new self;
}
return self::$instance;
}
// 禁止对象克隆
private function __clone()
{
}
}
单例模式确保一个类只有一个实例,只能自己的内部实现实例化,当他人再次实例化时返回第一次实例化的对象。
单例模式解决了一个全局使用的类频繁地创建与销毁。
单例模式的使用场景
连接数据库
class MySql
{
static private $connect;
private function __construct()
{
}
static public function instance()
{
if (!self::$connect) {
self::$connect = mysqli_connect('127.0.0.1', 'root', 'root', 'test', '8889');
}
return self::$connect;
}
private function __clone()
{
// TODO: Implement __clone() method.
}
}
$mysql1 = MySql::instance();
$mysql2 = MySql::instance();
if ($mysql1 === $mysql2) {
echo '是同一个对象';
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。