标签:https git 逻辑 继承 有一个 不用 连接 self github
github地址:https://github.com/ZQCard/design_pattern
单例模式:顾名思义就就是创建单个实例的模式。
优点:保证一个类仅有一个实例,并提供一个访问它的全局访问点。避免使用的类频繁地创建与销毁以致于造成不必要的消耗。
缺点:没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。
应用实例:数据库的连接、web计数器,不用每次刷新都在数据库里加一次,用单例先缓存起来等等
由于PHP是单线程,不用考虑多线程造成不完美的单例.
(1)Singleton.class.php
<?php
namespace Singleton;
class Singleton
{
public static $db = null;
private function __construct()
{
$dsn = ‘mysql:host=localhost;dbname=blog‘;
$username = ‘root‘;
$passwd = ‘zhouqi445864742‘;
self::$db = new \PDO($dsn, $username, $passwd);
}
public static function getInstance()
{
if (self::$db == null){
self::$db = new Singleton();
}
return self::$db;
}
}
(2)客户端
<?php spl_autoload_register(function ($className){ $className = str_replace(‘\\‘,‘/‘,$className); include $className.".class.php"; }); use Singleton\Singleton; $db = Singleton::getInstance(); $db2 = Singleton::getInstance(); echo $db === $db2 ? ‘单例‘:‘失败‘;
标签:https git 逻辑 继承 有一个 不用 连接 self github
原文地址:https://www.cnblogs.com/zhouqi666/p/9107580.html