java中的模板设计模式【抽象类的最佳实践】
本文主要讲述抽象类最佳实践,模板设计模式。
老韩的介绍:
示例代码如下:
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 }