欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

设计模式之单例模式(Singleton Pattern),太简单了

程序员文章站 2022-07-09 19:52:17
基本定义 单例模式就是确保某一个类只有一个实例,并且提供一个全局访问点。单例模式有如下几个特点: 它只有一个实例。 它必须要自行实例化。 它必须自行向整个系统提供访问点。 代码实现 饿汉式 直接初始化静态变量。这样就保证了线程安全。 public class Singleton { private ......

基本定义

单例模式就是确保某一个类只有一个实例,并且提供一个全局访问点。单例模式有如下几个特点:

  • 它只有一个实例。
  • 它必须要自行实例化。
  • 它必须自行向整个系统提供访问点。

代码实现

饿汉式

直接初始化静态变量。这样就保证了线程安全。

public class singleton {
private static singleton singleton = new singleton();
private singleton(){
}
public static singleton getinstance(){
return singleton;
}
}

懒汉式

按需加载. 配合synchronized来处理。也就是说将getinstance()方法变成同步方法

public class lazysingleton {
private static volatile lazysingleton lazysingleton;
private lazysingleton(){
}
public static lazysingleton getinstance(){
if(lazysingleton == null){
synchronized(lazysingleton.class){
lazysingleton = new lazysingleton();
}
}
return lazysingleton;
}
}

优点

节约了系统资源。由于系统中只存在一个实例对象,对与一些需要频繁创建和销毁对象的系统而言,单例模式无疑节约了系统资源和提高了系统的性能。
因为单例类封装了它的唯一实例,所以它可以严格控制客户怎样以及何时访问它。
缺点

由于单例模式中没有抽象层,因此单例类的扩展有很大的困难。
jdk源码

懒汉式

java.lang.runtim

设计模式之单例模式(Singleton Pattern),太简单了

饿汉式

java.lang.system

设计模式之单例模式(Singleton Pattern),太简单了

设计模式之单例模式(Singleton Pattern),太简单了​​​​​​​

设计模式之单例模式(Singleton Pattern),太简单了