模板设计模式-多态的体现

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

 

解决的问题:

  >当功能内部一部分实现是确定的,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现

 

  >换句话说,在软件开发中实现一个算法时,整体步骤很固定、通用,这些步骤在父类中写好。但是某些部分易变,易变部分可以抽象出来,供不同子类去实现。这就是一种模板模式。

 

 

 

 1 public class TemplateTest {
 2     public static void main(String[] args) {
 3         SubTemplate t = new SubTemplate();
 4         t.spendTime();
 5     }
 6 
 7 }
 8 
 9 abstract class Template{
10 
11     //计算某段代码执行所需要的时间
12     public void spendTime(){
13         long start = System.currentTimeMillis();
14         code();
15         long end = System.currentTimeMillis();
16         System.out.println("花费的时间为:" + (end - start));
17     }
18 
19     public abstract void code();
20 }
21 
22 class SubTemplate extends Template{
23 
24     public void code(){
25         int sum = 0;
26         for(int i = 2; i <= 1000; ++i){
27             sum += i;
28         }
29     }
30 }

 

posted @ 2022-05-10 18:16  草莓小甜心  阅读(65)  评论(0)    收藏  举报