设计模式:单例模式

一、单例模式

  单例模式(Singleton Pattern)是一个比较简单的模式,其定义如下:Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。)

单例模式通用类图

 

<?php
    class Singleton {
         private static $initial = null;
        
         //私有化构造方法
         private function __construct(){
         }
         //私有化克隆方法
         private function __clone(){
         }
         
         public static function  Initialization(){
                if(self::$initial == null){
                    self::$initial = new self();
                }
                return  self::$initial; 
         }
    }

  优点:

    1. 由于单例模式在内存中只有一个实例,减少了内存开支,在一个对象需要频繁地创建、销毁时,而且创建或销毁时性能又无法优化,单例模式的优势就非常明显

    2. 单例模式可以避免对资源的多重占用

    3. 单例模式可以在系统设置全局的访问点,优化和共享资源访问

  缺点:

    1. 单例模式一般没有接口,扩展困难

    2. 单例模式与单一职责原则有冲突。一个类应该只实现一个逻辑,而不关心它是否是单例的,是不是要单例取决于环境,单例模式把“要单例”和业务逻辑融合在一个类中

原文地址:https://www.cnblogs.com/onlycat/p/8980491.html