2018-08-21 php-单例模式

特点:

1:一个类只有一个对象

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

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

实现过程:

1:类的构造函数是private

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

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

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

优点

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

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

缺点

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

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

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

你可能感兴趣的:(2018-08-21 php-单例模式)