我是靠谱客的博主 开放音响,最近开发中收集的这篇文章主要介绍非零基础自学Java (老师:韩顺平) 第10章 面向对象编程(高级部分) 10.7 抽象类最佳实践 - 模板设计模式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

非零基础自学Java (老师:韩顺平)

✈【【零基础 快速学Java】韩顺平 零基础30天学会Java】

第10章 面向对象编程(高级部分)

文章目录

      • 非零基础自学Java (老师:韩顺平)
      • 第10章 面向对象编程(高级部分)
        • 10.7 抽象类最佳实践 - 模板设计模式
          • 10.7.1 基本介绍
          • 10.7.2 模板设计模式能解决的问题
          • 10.7.3 最佳实践

10.7 抽象类最佳实践 - 模板设计模式

10.7.1 基本介绍

抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会保留抽象类的行为方式。

10.7.2 模板设计模式能解决的问题
  • 当功能内部一部分实现是确定,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。
  • 编写一个抽象父类,父类提供了多个子类的通用方法,并把一个或多个方法留给其子类实现,就是一种模板模式.
10.7.3 最佳实践

韩老师需求:

  1. 有多个类,完成不同的任务job
  2. 要求统计得到各自完成任务的时间

举个栗子

模板类

package com.dingjiaxiong.abstract_;

/**
 * ClassName: Template
 * date: 2022/9/3 20:19
 *
 * @author DingJiaxiong
 */

abstract public class Template { //抽象类
    public abstract void job(); //抽象方法

    public void calculateTime(){ //实现方法,调用job方法
        //开始时间
        long start = System.currentTimeMillis();
        job(); //动态绑定机制
        //结束时间
        long end = System.currentTimeMillis();

        System.out.println("任务执行时间" + (end - start));
    }
}

AA类

package com.dingjiaxiong.abstract_;

/**
 * ClassName: AA
 * date: 2022/9/3 20:22
 *
 * @author DingJiaxiong
 */

public class AA extends Template{

    @Override
    public void job() { //实现抽象方法job
        long num = 0;
        for (int i = 0; i <= 800000; i++) {
            num += i;
        }
    }
}

BB类

package com.dingjiaxiong.abstract_;

/**
 * ClassName: BB
 * date: 2022/9/3 20:23
 *
 * @author DingJiaxiong
 */

public class BB extends Template{
    @Override
    public void job() { //这里同理
        long num = 0;
        for (int i = 0; i <= 80000 ; i++) {
            num *= i;
        }
    }
}

测试类

package com.dingjiaxiong.abstract_;

/**
 * ClassName: TestTemplate
 * date: 2022/9/3 20:23
 *
 * @author DingJiaxiong
 */

public class TestTemplate {
    public static void main(String[] args) {
        AA aa = new AA();
        aa.calculateTime();

        BB bb = new BB();
        bb.calculateTime();
    }
}

运行结果

在这里插入图片描述

最后

以上就是开放音响为你收集整理的非零基础自学Java (老师:韩顺平) 第10章 面向对象编程(高级部分) 10.7 抽象类最佳实践 - 模板设计模式的全部内容,希望文章能够帮你解决非零基础自学Java (老师:韩顺平) 第10章 面向对象编程(高级部分) 10.7 抽象类最佳实践 - 模板设计模式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部