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