首页 > 编程语言 >java中的模板设计模式【抽象类的最佳实践】

java中的模板设计模式【抽象类的最佳实践】

时间:2022-12-20 16:11:31浏览次数:44  
标签:Aa java Calculate public job 抽象类 设计模式 CalculateTime

本文主要讲述抽象类最佳实践,模板设计模式。

  老韩的介绍:

vip

  示例代码如下:

 1 /**
 2  * 需求:计算出执行一个job()方法,所需要花费的时间.
 3  * 使用模板设计模式【抽象类】
 4  */
 5 public class AbstractModel {
 6     public static void main(String[] args) {
 7         // Aa的编译类型是CalculateTime,运行类型是Aa.
 8         // time1.Calculate()的执行过程:
 9         /*
10             先在子类Aa中寻找Calculate()方法,若没有,去父类中查找
11             当执行到job()方法时,根据动态绑定机制,time1对象的运行类型是Aa,执行Aa中job()方法,
12             执行完后,返回到Calculate()方法中。
13          */
14         CalculateTime time1 = new Aa();
15         CalculateTime time2 = new Bb();
16         time1.Calculate();
17         time2.Calculate();
18     }
19 
20 }
21 
22 abstract class CalculateTime {
23     public abstract void job();
24     public void Calculate(){
25         // 记录当前时间
26         long start = System.currentTimeMillis();
27         job();
28         //记录结束时间
29         long end = System.currentTimeMillis();
30 
31         System.out.println("job()工作时间: "+ (end-start));
32     }
33 
34 }
35 
36 class Aa extends CalculateTime{
37     // 动态绑定机制
38     public void job(){
39         int sum = 0;
40         for (int i = 1; i <= 100000; i++) {
41             sum += i;
42         }
43     }
44 }
45 
46 class Bb extends CalculateTime{
47     // 动态绑定机制
48     public void job(){
49         int sum = 0;
50         for (int i = 1; i <= 100000; i++) {
51             sum += i;
52         }
53     }
54 }

 

标签:Aa,java,Calculate,public,job,抽象类,设计模式,CalculateTime
From: https://www.cnblogs.com/zwgitOne123/p/16994408.html

相关文章

  • [新手向]Java的一个新手天坑
    Java新手天坑!想写一篇新手避坑向的文章很久了,最近来到园子,终于有机会发表这篇文章了(文笔和技术都不咋地,大佬见谅,适用于刚入坑没多久的新手群体)在java中,经过一段学习的人......
  • JAVA Thread.sleep(0)深入理解
    JAVA并发-Thread.sleep(0)深入理解Thread.Sleep(0)的作用,就是“触发操作系统立刻重新进行一次CPU竞争”。通过调用Thread.sleep(0)的目的是为了让GC线程有机会被操作......
  • java -贪心
     给定一个字符串,一个K 可以交换相邻字符,最多K次。问可以得到的最大值如 Strings="01326";intk=7;  01326-->60132-->63012-->63102importjava.util......
  • java.sql.Connection 线程安全吗?
    首先看一段代码:try(Connectionconnection=DriverManager.getConnection("jdbc:mysql://remote01:3306/test");){ ExecutorServiceexecutor=ThreadUtil.newExecut......
  • Java IO
    JavaIO原理:作者:哟哟的小豆豆链接:https://juejin.cn/post/6844903839439519758来源:稀土掘金类结构及继承关系图常见面试题什么是流?字符串分解---------------......
  • java中的抽象类
    本文主要讲述java中的抽象类,以及具体的细节老韩的抽象类介绍 ......
  • open for java 创建圆弧
    //徐华进2022/12/20///*==================================================================================================Copyright(c)2004UGS......
  • Java序列化与反序列化三连问:是什么?为什么要?如何做?
    Java序列化与反序列化是什么?Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程:序列化:对象序列化的最主要的用处就是在......
  • 设计模式 - 桥接模式
    目录​实例​​​数据转换工具​​​桥接模式​​​概念​​​​角色定义​​​​典型代码​​​​具体实现​​​​总结​​​​源码​​实例数据转换工具​​Sunny​​​......
  • 为什么Java线程没有Running状态?
    Java虚拟机层面所暴露给我们的状态,与操作系统底层的线程状态是两个不同层面的事。具体而言,这里说的Java线程状态均来自于Thread类下的State这一内部枚举类中所定义的......