单例模式

来源:互联网 发布:淘宝上网络解锁可靠吗 编辑:程序博客网 时间:2024/05/20 02:50

单例模式属于创建型模式

意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

主要解决:一个全局使用的类频繁地创建与销毁。何时使用:当您想控制实例数目,节省系统资源的时候。

优点:在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。 

   ②避免对资源的多重占用(比如写文件操作)。

缺点:没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化

UML图:

代码如下:

懒汉式(线程安全)

public class Singleton {      private static Singleton instance;      private Singleton (){}      public static synchronized Singleton getInstance() {      if (instance == null) {          instance = new Singleton();      }      return instance;      }  } 
饿汉式(线程安全):

public class Singleton {private static Singleton instance = new Singleton();private Singleton(){};public static Singleton getInstance() {return instance;}}



1 0