PHP设计模式之:单例模式
来源:互联网 发布:手机淘宝店名可以改吗 编辑:程序博客网 时间:2024/06/13 00:23
单例模式(职责模式):
简单的说,一个对象(在学习设计模式之前,需要比较了解面向对象思想)只负责一个特定的任务;
单例类:
1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化;
2、拥有一个保存类的实例的静态成员变量
3、拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到类是否已经被实例化)
另外,需要创建__clone()方法防止对象被复制(克隆)
为什么要使用PHP单例模式?
1、php的应用主要在于数据库应用,
2、如果系统中需要有一个类来全局控制某些配置信息,
3、在一次页面请求中,
代码实现:
<111?111php111
/1**
*
*
*
*
*
*
*
*
*
*
*
*/
class Danli{ //保存类实例的静态成员变量 private static $_instance; //private标记的构造方法 private function __construct(){ echo 'This is a Constructed method;'; } //创建__clone方法防止对象被复制克隆 public function __clone(){ trigger_error('Clone is not allow!',E_USER_ERROR); } //单例方法,用于访问实例的公共的静态方法 public static function getInstance(){ if(!(self::$_instance instanceof self)){ self::$_instance = new self; } return self::$_instance; } public function test(){ echo '调用方法成功'; } } $danli = Danli::getInstance();$danli->test();
//用new实例化private标记构造函数的类会报错
//$danli
//正确方法,用双冒号::操作符访问静态方法获取实例
$danli
$danli->test();
//复制(克隆)对象将导致一个E_USER_ERROR
- php设计模式之单例模式
- PHP设计模式之:单例模式
- PHP设计模式之单例模式
- PHP 设计模式之单例模式
- PHP设计模式之:单例模式
- php设计模式之单例模式
- PHP设计模式之:单例模式
- PHP设计模式之:单例模式
- PHP设计模式之:单例模式
- php设计模式之单例模式
- PHP设计模式之:单例模式
- PHP设计模式之:单例模式
- PHP设计模式之单例模式
- PHP设计模式之单例模式
- PHP设计模式之:单例模式
- PHP设计模式之单例模式
- php设计模式之单例模式
- php设计模式之单例模式
- 盘点当下最流行的 Java 工具
- Android Studio离线使用gradle
- 一些实用的 Laravel 小技巧
- slice()截取方法substring()字符串截取substr()字符串截取
- 黑马程序员:各学科学习路线图,简直是厉害了word哥
- PHP设计模式之:单例模式
- UCOS-III 消息队列正确使用方法
- T-SQL
- static
- HTTP Status 500 - Servlet.init() for servlet springmvc threw exception
- scratch比较2——旋转的图形
- SVN更新提示冲突时各选项的意思
- 你所不知道的 PHP - 自动加载
- java面向对象高级分层实例_实体类