设计模式——单例模式

设计模式——单例模式

单例模式的定义

Ensure a class has only one instance, and provide a global point of access to it.

确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。

public class Singleton{
  private static final Singleton singeton = new Singleton();
  private Singleton(){
  }
  public static Singleton getSingleton(){
      return singleton;
  }
  public static void doSomething(){
    // doSomething
  }
}

单例模式的优点

  • 单例模式在内存中只有一个实例,减少了内存开支
  • 单例模式只生成一个实例,所以减少了系统的性能开销
  • 单例模式可以避免对资源的多重占用
  • 单例模式可以在系统设置全局的访问点,优化和共享资源访问。

单例模式的缺点

  • 单例模式一般没有接口,扩展很困难
  • 单例模式对测试是不利的
  • 单例模式与单一职责原则有冲突。

单例模式的使用场景

  • 要求生成唯一序列号的环境
  • 在整个项目中需要一个共享访问点或共享数据
  • 创建一个资源需要消耗的资源过多
  • 需要定义大量的静态常量和静态方法

你可能感兴趣的:(设计模式——单例模式)