码迷,mamicode.com
首页 > 其他好文 > 详细

模板方法设计模式

时间:2017-06-07 15:45:52      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:extend   重写   设计模式   code   his   其他   []   void   ring   

/** 模板方法设计模式:父类的普通方法依赖于一个抽象方法,而抽象方法则推迟到子类中提供实现

*   父类中的普通方法只提供通用的算法,把抽象方法暴露出去,让子类去实现

*/
public class TestTemplate {
public static void main(String[] args) {
//匿名类对象调用其父类方法
new SubTemplate().spendTime();
}
}

abstract class Template {
//把抽象的部分暴露出来,让子类去实现
public abstract void code();
//空参构造器
public Template(){

}
//普通方法依赖于抽象方法(也就是和抽象方法发生关系。。。)
//计算code方法的运行时间
public void spendTime() {
//system类的currentTimeMillis方法
long start = System.currentTimeMillis();
//这个方法不是抽象的,所以可以用对象来调用。同时这是个虚拟方法调用,即调用的是子类重写的方法。
this.code();

long end = System.currentTimeMillis();
System.out.println("花费的时间是 : " + (end - start));
}
}
class SubTemplate extends Template{
public SubTemplate(){
super();
}
public void code(){
//输出100000以内的素数
//首先假定这个数是素数
boolean flag = true;
//将这个数i作为被除数
for(int i = 2; i <= 100000;i++){
//j作为除数
for(int j = 2; j <= Math.sqrt(i); j++){
//若被除数能被除数除尽,则这个数有除了1 和 自身 以外的其他因数,所以不是素数,退出循环
if( i % j == 0){
flag = false ;
break;
}
}
//判断这个数是不是素数,是的话就输出
if(flag == true ){
System.out.println(i);
}
//重新假定这个数是素数
flag = true;
}
}
}

模板方法设计模式

标签:extend   重写   设计模式   code   his   其他   []   void   ring   

原文地址:http://www.cnblogs.com/zhyn-BeHard/p/6957075.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!