模板方法模式
模板方法模式可以封装一个算法骨架,由其子类实现算法具体内容。
public class Template{
public void timer(){
long start = start();
algorithm();
long end = end();
System.out.println("算法用时:" + (end - start) + "ms");
}
public long start(){
long start = System.currentTimeMillis();
System.out.println("算法开始时间:" + start);
return start;
}
public long end(){
long end = System.out.currentTimeMillis();
System.out.println("算法结束时间:" + end);
return end
}
public abstract void algorithm();
}
public class Arithmetic implements Template{
private int x;
private int y;
public Arithmetic(int x, int y){
this.x = x;
this.y = y;
}
@Override
public void algorithm(){
add();
sub();
mul();
div();
}
public void add(){
System.out.println("x + y = " + (x + y));
}
public void sub(){
System.out.println("x - y = " + (x - y));
}
public void mul(){
System.out.println("x * y =" + (x * y));
}
public void div(){
System.out.println("x / y = "+ (x / y));
}
}
public class TestFor implements Template{
@Overrid
public void algorithm(){
for(int i = 0; i < 10; i++){
System.out.println(i);
}
}
}
public class Client{
Template arithmetic = new Aruthmetic();
artimetic.timer();
Template testFor = new TestFor();
testFor.timer();
}