3.1单例(Singleton)模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
3.2单例模式-概述
单件模式是关于怎样设计一个类,并使得该类只有一个实例的成熟模式,该模式的关键是将类的构造方法设置为private权限,并提供一个返回它的唯一实例的类方法。
3.3结构
包括一个角色:单件类(Singleton)
3.4使用
public class Moon{
private static Moon uniqueMoon;
double radius;
double distanceToEarth;
private Moon(){
uniqueMoon=this;
radius=1738;
distanceToEarth=363300;
}
public static synchronized Moon getMoon(){
if(uniqueMoon==null){
uniqueMoon=new Moon();
}
return uniqueMoon;
}
public String show(){
String s="月亮的半径是"+radius+"km,距地球是"+distanceToEarth+"km";
return s;
}
}
3.5单例模式-什么时候使用
- 必要条件
在一个系统中要求一个类只需要一个实例时才可以被用来作为单例模式,反过来说如果一个类需要多个实例化对象共存那么就不适合单例模式
回收站是单例模式的体现
3.6单例模式-优点
- 单件类的唯一实例由单件类本身来控制,所以可以很好地控制用户何时访问它。
- 节省内存资源