• java 28


    模版设计模式

      模版设计模式概述

      模版方法模式就是定义一个算法的骨架,而将具体的算法延迟到子类中来实现

      优点

      使用模版方法模式,在定义算法骨架的同时,可以很灵活的实现具体的算法,满足用户灵活多变的需求

      缺点

      如果算法骨架有修改的话,则需要修改抽象类

    例子:

      如果我想知道一个程序运行所花费的时间,那么为了程序更符合面向对象思想设计原则。

    就应该把   “运行的程序”、“时间的计算”、“启动这两个类” 分开成3个类来做。

      其中“事件的计算”就是个模版设计,定义一个算法的骨架,将具体的算法延迟到子类中来实现。里面是抽象类和抽象方法

      而“运行的程序”则是继承了“事件的计算”,重写它的抽象方法。

    代码:

      “时间的计算”

     1 /*
     2  这是个计算程序运行事件的算法骨架
     3  */
     4 
     5 //有抽象方法,必须抽象类
     6 public abstract class GetTime {
     7 
     8     public long getTime() {
     9 
    10         // 获取启动时的时间
    11         long starttime = System.currentTimeMillis();
    12 
    13         // 调用抽象方法
    14         code();
    15 
    16         // 获取结束时间
    17         long endtime = System.currentTimeMillis();
    18 
    19         // 返回运行所花时间
    20         return endtime - starttime;
    21 
    22     }
    23 
    24     // 抽象方法
    25     public abstract void code();
    26 
    27 }

      

      “运行的程序”

     1 public class ForDemo extends GetTime {
     2 
     3     public void code() {
     4 
     5         for (int x = 0; x < 10000; x++) {
     6             System.out.println(x);
     7         }
     8 
     9     }
    10 
    11 }

      “启动两个类”

     1 public class GetTimeDemo {
     2 
     3     public static void main(String[] args) {
     4 
     5         // 创建GetTime抽象类的对象,需要这个类的具体实现类
     6         GetTime g = new ForDemo();
     7 
     8         System.out.println("花费时间:" + g.getTime() + "毫秒");
     9 
    10     }
    11 
    12 }
  • 相关阅读:
    一个例子帮助理解正则表达式
    requestAnimationFrame兼容性扩展
    检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
    手把手教你如何安装和使用Karma-Jasmine
    cesium随笔 — 隐藏三维场景下方版权信息
    cesium随笔 — 获取当前鼠标的经度、纬度、高度
    Cesium Language (CZML) 入门2 — CZML Content(CZML的内容)
    html初识
    MySQL终章
    MySQL表与表之间的关系详解
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5970232.html
Copyright © 2020-2023  润新知