美文网首页
PHP设计模式(一)

PHP设计模式(一)

作者: zyn_10 | 来源:发表于2019-02-27 13:53 被阅读0次

    单例模式

    1. 单例模式的目的是在应用程序调用的时候,只能获取一个对象实例,避免每次都new一个实例,减少资源消耗。常见于数据库链接。但是单例模式是一个公认的反面模式,为了获取更好的可测试性和可维护性,可以使用 依赖注入
    2. 代码
    <?php 
    namespace DesignPatterns\Creational\Singleton;
    
    final class Singleton
    {
        /**
         * 单例的属性要是静态属性
         *
         */
        private static $instance;
    
        /**
         * 通过懒加载获得实例(在第一次使用的时候创建)
         */
        public static function getInstance(): Singleton
        {
            if (null === static::$instance) {
                static::$instance = new static();
            }
    
            return static::$instance;
        }
    
        /**
         * 不允许从外部调用以防止创建多个实例
         * 要是用单例,必须使用 Singleton::getInstance() 方法获取实例
         */
        private function __construct()
        {
        }
    
        /**
         * 防止实例被克隆(这回会创建实例的副本)
         */
        private function __clone()
        {
        }
    
        /**
         * 防止反序列化(这将创建它的副本)
         */
        private function __wakeup()
        {
        }
    }
    

    相关文章

      网友评论

          本文标题:PHP设计模式(一)

          本文链接:https://www.haomeiwen.com/subject/hpxayqtx.html