前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >指定一个创建对象的方法,如果对象存在则直接返回

指定一个创建对象的方法,如果对象存在则直接返回

原创
作者头像
用户8983410
修改2021-10-08 14:57:32
3.2K0
修改2021-10-08 14:57:32
举报
文章被收录于专栏:代码小技巧分享分析

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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档