/**
* Created by Kodulf on 2017/4/1.
*/
public class Test {
public static void main(String[] args){
ShixianMoban shixianMoban = new ShixianMoban();
shixianMoban.getTime();
}
}
/**
* 模版设计模式:当实现一个功能时候,功能的一部分是确定的,另一部分是不确定的,确定过的部分还会用到不确定过的部分,那么就把不确定的部分暴露出去,让子类去实现
*
* 例子:计算一个程序的运行时间,
* 记录程序运行的开始和结束时间
*/
abstract class Moban{
public synchronized void getTime(){
long start = System.currentTimeMillis();
run();
long end = System.currentTimeMillis();
System.out.println("程序运行时间:"+(start-end));
}
public abstract void run();
}
class ShixianMoban extends Moban{
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("模版实现了啊,哈哈哈"+i);
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}