设计模式 单例模式

单例模式(Singlton Pattern):单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类简称单例类。

单例模式实现的要点有三个:

  • 某个类只能有一个实例
  • 单例类必须自行创建这个实例
  • 单例类必须自行向整个系统提供这个实例
  • 单例模式需要拥有一个私有构造函数,去报用户无法通过new关键字直接实例化它

 

具体类图如下

 

表明单例类自己拥有自己为对象属性,具体实现流程为,客户调用getInstance()方法来获取一个对象,当第一次获取时则新建一个对象,如果不是第一次获取则返回已有的对象。

 

单例模式优点:

  • 提供了唯一实例的受控访问
  • 节约系统资源
  • 允许可变数目的实例

缺点:

  • 单例类职责过重,即充当工厂角色,又充当产品角色
  • 滥用单例会带来一些负面影响

 

单例模式有两种类型分别为饿汉式单例类懒汉式单例类:

饿汉式单例类是在类被加载是就实例一个对象,而懒汉式是在调用对象时再将其实例化

具体实现如下,

饿汉式:

 

 

懒汉式:

 

posted @ 2021-11-28 20:14  见怪见外  阅读(29)  评论(0)    收藏  举报