php设计模式之单例模式

1.目的:

          在应用程序中只有一个该对象的实例,该对象将处理所有调用

2.场景举例:

          数据库连接

          记录器

          应用程序的锁文件

3.UML 图:

          

4.类和方法:

         

Singleton.php:

<?php

namespace design;
final class Singleton
{
    //实例对象
    private static $instance;

    //通过延迟初始化获得实例
    public static function getInstance(): Singleton
    {
        if (null === static::$instance) {
            self::$instance = new static();
        }
        return self::$instance;
    }

    /*
    *不允许从外部调用来防止创建多个实例
    *要使用单例,必须通过Singleton::getInstance() 来获得实例对象
    */
    private function __construct(){}

    //防止克隆
    private function __clone(){}

    //防止反序列化
    private function __wakeup(){}



}

 

           

          

 

 

 

          

posted @ 2017-05-05 14:53  shijiu520  阅读(105)  评论(0)    收藏  举报