🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## **单例模式** 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 > 单例模式是一种常见的设计模式,在计算机系统中,线程池、缓存、日志对象、数据库操作、显卡的驱动程序常被设计成单例。 ## 单例模式3个特点 * 1. 只能有一个实例。 * 2. 必须自行创建这个实例。 * 3. 必须给其他对象提供这一实例 ## 为什么要使用PHP单例模式? > PHP一个主要应用场合就是应用程序与数据库打交道的场景 > 在一个应用中会存在大量的数据库操作,针对数据库句柄连接数据库的行为,使用单例模式可以避免大量的new操作。因为每一次new操作都会消耗系统和内存的资源。 ## 单例模式设计代码实现 ~~~ class Single{ private $name = ''; private static $instance; //构造方法设置为私有方法,禁止外部new操作 private function __construct() { } private function __clone() { } public static function getInstance(){ if(!self::$instance) self::$instance = new self(); return self::$instance; } public function setName($name){ $this->name = $name; } public function getName(){ return $this->name; } } $singleA = Single::getInstance(); $singleB = Single::getInstance(); $singleA->setName('tom'); $singleB->setName('jack'); echo $singleA->getName();//输出jack echo $singleB->getName();//输出jack ~~~