2018-08-21 php-单例模式

特点:

1:一个类只有一个对象

2:必须是类内部自行创建这个对象

3:向整个系统提供这个对象

实现过程:

1:类的构造函数是private

2:类中含有一个该类的静态私有对象

3:提供一个静态的公有函数用于创建、获取本身的静态私有对象

4:当然还要有一个private的clone方法,防止克隆

优点

1:实例控制,单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。

2:灵活性,因为类控制了实例化过程,所以类可以灵活更改实例化过程

缺点

1:开销,虽然数量很少,但如果每次对象请求引用时都要检查是否存在类的实例,将仍然需要一些开销。可以通过使用静态初始化解决此问题。

2:可能的开发混淆,使用单例对象(尤其在类库中定义的对象)时,开发人员必须记住自己不能使用new关键字实例化对象。因为可能无法访问库源代码,因此应用程序开发人员可能会意外发现自己无法直接实例化此类。

3:对象生存期,不能解决删除单个对象的问题。在提供内存管理的语言中(例如基于.NET Framework的语言),只有单例类能够导致实例被取消分配,因为它包含对该实例的私有引用

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式(SingletonPattern)一般被认为是最简单、最易理解的设计模式,也因为它的简洁易懂,是项目中最...
    成热了阅读 9,786评论 4 34
  • 前言 本文主要参考 那些年,我们一起写过的“单例模式”。 何为单例模式? 顾名思义,单例模式就是保证一个类仅有一个...
    tandeneck阅读 7,229评论 1 8
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,953评论 18 399
  • 平日里我不爱过多“搭理”母亲,大抵是觉得她啰嗦之余,还多了几分农村妇女的愚昧。以至于每次看到她打来的电话,我总...
    小雨爱的蓝胖子阅读 4,231评论 7 2
  • 不习惯被别人呼喊我的名字 因为父亲的冷漠妈妈的不理解 在面对冷暴力的时候 只有书本能让我取暖 面对别人的嘲讽时 唯...
    蔷薇飒阅读 1,072评论 0 0