php设计模式之一单例模式
最近在学习设计模式,很多地方还理解的不够。在这里记录一下自己学习的东西,方便自己以后查看和理解,同时也给正在学这部分的同学提供一点参考。
单例模式(Singleton Pattern 单件模式或单元素模式)
单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
单例模式是一种常见的设计模式,在计算机系统中,线程池、缓存、日志对象、对话框、打印机、数据库操作、显卡的驱动程序常被设计成单例。
单例模式分3种:懒汉式单例、饿汉式单例、登记式单例。
单例模式有以下3个特点:
1.只能有一个实例。
2.必须自行创建这个实例。
3.必须给其他对象提供这一实例。
饿汉单例模式 不过在php里,不允许这么实用。所以我们主要是说PHP的懒汉式单例模式
<?php class User { //静态变量保存全局实例 private static $_instance = null; //私有构造函数,防止外界实例化对象 private function __construct() { } //私有克隆函数,防止外办克隆对象 private function __clone() { } //静态方法,单例统一访问入口 static public function getInstance() { if (!self::$_instance) { self::$_instance = new self (); } return self::$_instance; } public function getName() { echo 'hello world!'; } }
浙公网安备 33010602011771号