一、单例设计模式
1、饿汉式
class Single{
private Single(){}//将构造函数私有,防止在该类外建立该类对象
private static final Single s=new Single();//因为获取对象方法是静态,所以也要静态
public static Single getInstance(){//对外提供获取对象的方法
return s;
}
}
2、懒汉式
class Single{
private Single(){}//将构造函数私有,防止在该类外建立该类对象
private static Single s=null;
public static Single getInstance(){//对外提供获取对象的方法
if(s==null){//双重if语句就是为了避免多次等锁
synchronized(Single.class){//因为是静态方法中,所以锁只能是本类的class文件
if(s==null)
s=new Single();
}
}
return s;
}
}
二、模版方法设计模式
//例如计算一段程序的执行时间
abstract class GetTime{
public final void getTime()
{
long start = System.currentTimeMillis();
runcode();
long end = System.currentTimeMillis();
System.out.println("毫秒:"+(end-start));
}
public abstract void runcode();
}
定义类继承GetTime类,重写runcode方法,然后创建对象调用getTime方法即刻