前面在说到static的时候,有一个设计模式,是单例模式!这里说到抽象类了,也有一个设计模式:模板方法设计模式!在后面到接口还会有!自己感觉把设计模式这么分出来记,即像这样将它与对应的知识点相关联,记忆效果不错!每当回忆道对应知识点的时候,你就能想到相应的设计模式,挺好的!嘿嘿!~~~
模板方法设计模式(Template):
解决问题:
1>当功能内部一部分实现是确定的,一部分是不确定的,那么我们就可以把不确定的部分暴露出去,让子类实现。
2>编写一个抽象父类,父类提供多个子类通用的方法,并把一个或多个方法留给其子类去实现,这就是模板模式。
public class TestTemplate{
public static void main(String[] args){
Template t = new SubTemplate();
t.spendTime();
}
}
class abstract Template{
public abstract void code(); //要测试的代码不确定,暴露给子类实现
public void spendTime(){ //确定的是要测执行代码花费的时间
long start = System.currentTimeMillis();
code();
long end = System.currentTimeMillis();
System.out.println("花费的时间:" + (end - start));
}
}
class SubTemplate extends Template{
public void code(){
boolean flag = false;
for(int i=2;i < 100000 ; i++){
for(int j=2; j < Math.sqrt(i); j++){
if(i % j == 0){
flag = true;
break;
}
}
if(!flag){
System.out.println(i);
}
flag = false;
}
}
}