1.单例模式
保证程序运行时都只有一个对象实例。
一般实现方式有两种:
①静态加载实例,手打如下仅作示例。因为静态加载会在程序入栈初始就加载到静态内存区,所以保证了运行时期只有一个实例,当然若是在程序加载静态内存区的时候就调用那就要作判断;
public Class Singleton{
priate static Singleton instance= new Singleton();
private Singleton(){}
public static getInstance(){
return instance;
}
}
②懒加载,运行时在使用的时候判断实例是空则实例化一个对象。减少程序内存使用,但是面对多线程的调用要格外小心处理,最好是作两次空判定,保证执行软件效率也保证可靠性。也手打一个例子吧,不保证能运行,仅作示例。
public Class Singleton{
priate static volatile Singleton instance= null;
private Singleton(){}
private static object locker=new object();
public static getInstance(){
if(instance == null){
lock(locker){
if(instance == null)
instance = new Singleton();
}
}
return instance;
}
}