• 模板方法设计模式


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

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

    */
    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;
    }
    }
    }

  • 相关阅读:
    Git常用操作命令
    android快速入门
    使用Jsoup 抓取页面的数据
    js面向对象组件
    js事件详解
    图解TCP-IP协议
    error: linking with `cc` failed: exit code: 1
    git——'fatal: cannot do a partial commit during a merge'
    git add 而未 commit 的文件丢失后找回
    为rust配置国内/科大源
  • 原文地址:https://www.cnblogs.com/zhyn-BeHard/p/6957075.html
Copyright © 2020-2023  润新知