单例模式是一种PHP中常用的设计模式。今天我们来简单分析一下PHP中的单例模式到底是一个什么玩意儿。
1.单例模式在PHP中的实例应用:
PHP中有一个重要的应用场景就是和数据库打交道:在一个应用中会有大量的数据操作,正对数据库句柄连接数据库的行为,可以减少大量new的操作。这样就节省了内存和和资源的使用。
单例模式就是确保某个类只有一个实例。应用程序中只会有这一个类的实例存在。
2.关键词:三私一公
单例类中拥有一个能保存类的实例的私有静态成员变量和一个对应的能访问到实例的公共静态方法、还有一个__conle魔术方法。
2.1 3私:私有静态成员变量,私有的构造函数,私有的__conle魔术方法。
2.2 1共:能够访问到的公共的静态方法。我用PHP的代码来解释一下
<?php
//单例模式,一个类只能创建一个对象
class Single {
//定义一个静态属性来保存对象
private static $single;
//私有化构造方法
private function __construct( ) {
}
//私有化克隆方法
private function __clone() {
}
//1公 入口
public static function getInstance( ) {
if( self::$single ) {
//对象已经存在,返回原来对象
} else {
//对象不存在
self::$single = new Single( );
}
return self::$single;
}
}
$obj = Single::getInstance( );
var_dump( '<pre>', $obj);
3.单例模式的优缺点:
优点:
1.节约了系统资源。
2.是对全局变量的一种改进。
缺点:
1.难调试 2隐藏依赖关系 3无法用错误类型的数据复写一个单例。
这是我在学习了单例模式以后做的一个小的总结。有什么不对的地方还需要和大家多多交流。vx:fvalyl