php设计模式之实现单例模式(singleton)
单例模式(Singleton):用于为一个类生成一个唯一的对象。
最常用的地方是数据库连接。 使用单例模式生成一个对象后,该对象可以被其它众多对象所使用。
作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类。
单例模式(singleton)有三个特点
1、一个类只能有一个实例
2、它必须自行创建这个实例
3、它必须自行向整个系统提供这个实例
代码示例:
/ * 单例类 * Singleton.class */class Singleton { / * 静态成品变量 保存全局实例 */ private static $_instance = NULL; / * 私有化默认构造方法,保证外界无法直接实例化 */ private function __construct() { } / * 静态工厂方法,返还此类的唯一实例 */ public static function getInstance() { if (is_null(self::$_instance)) { self::$_instance = new Singleton(); // 或者这样写 // self::$_instance = new self(); } return self::$_instance; } / * 防止用户克隆实例 */ public function __clone(){ die('Clone is not allowed.' . E_USER_ERROR); } / * 测试用方法 */ public function test() { echo 'Singleton Test OK!'; }} / * 客户端 */class Client { / * Main program. */ public static function main() { $instance = Singleton::getInstance(); $instance->test(); }}Client::main();
测试
include "Singleton.class";$test_obj = Singleton::getInstance();$ret = $test_obj->test();
关键字:php, singleton, 单例模式
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!