zoukankan      html  css  js  c++  java
  • 设计模式3:模板模式(1)

      定义:

        定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。

      概述:

        定义一个功能时,功能的一部分是确定的,而另一部分不确定,确定的部分需要用到不确定的部分,把不确定的部分暴露出去,让子类实现。

      模板模式与抽象类和抽象方法联系在一起,其大致框架如下:

     1 abstract class 类名{
     2     //确定部分
     3     public void f(){
     4         ...
     5         f1();
     6     }
     7     
     8     //不确定部分
     9     public abstract void f1();
    10 }

      示例:

     1 package com.pattern;
     2 
     3 //该Demo测试一个一个方法的执行时间
     4 public class Test2 {
     5     public static void main(String[] args) {
     6         T t = new T();
     7         t.getTime();
     8     }
     9 }
    10 
    11 abstract class Test{
    12     public void getTime(){
    13         long start = System.currentTimeMillis();
    14         f();
    15         long end = System.currentTimeMillis();
    16         System.out.println(start);
    17         System.out.println(end);
    18         System.out.println("执行该方法花费的时间:"+(end-start)+"ms");
    19     }
    20     public abstract void f();
    21 }
    22 class T extends Test{
    23     @Override
    24     public void f() {
    25         for(int i =1;i<=100;i++)
    26             try {
    27                 Thread.sleep(100);
    28             } catch (InterruptedException e) {
    29                 // TODO Auto-generated catch block
    30                 e.printStackTrace();
    31             }
    32     }
    33     
    34 }
    35 
    36 /*
    37 abstract class 类名{
    38     //确定部分
    39     public void f(){
    40         ...
    41         f1();
    42     }
    43     
    44     //不确定部分
    45     public abstract void f1();
    46 }
    47 */

      效果:

      未完,待续。

  • 相关阅读:
    面向对象基本原则
    策略模式
    简单工厂模式
    高内聚、低耦合
    UML在代码中的展现
    使用commons-csv简单读写CSV文件
    java反射机制
    SrpingDruid数据源加密数据库密码
    markdown学习经验
    Vue.js学习笔记
  • 原文地址:https://www.cnblogs.com/enjoy-coding/p/4803576.html
Copyright © 2011-2022 走看看