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, 单例模式

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部