博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式3:模板模式(1)
阅读量:6484 次
发布时间:2019-06-23

本文共 1395 字,大约阅读时间需要 4 分钟。

  定义:

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

 

  概述:

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

 

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

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     @Override24     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 block30                 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 */

  效果:

 

  未完,待续。

 

转载于:https://www.cnblogs.com/enjoy-coding/p/4803576.html

你可能感兴趣的文章
从京东技术演进看互联网企业的成长历程
查看>>
MFC ado+mysql+odbc技术分享
查看>>
js中让字符串中特定字符红色显示
查看>>
HttpClient4.5教程-第二章-连接管理
查看>>
redhat Nginx 安装
查看>>
oracle 配置监听
查看>>
moosefs即将发布新版
查看>>
SmartGit 试用过期
查看>>
python 测试驱动开发的简单例子
查看>>
Aes 加密简单例子
查看>>
AE 线编辑
查看>>
软件设计之UML—UML的构成[上]
查看>>
如何使用AdMob中介界面?
查看>>
分享一个shell脚本:通过Jumper机器来创建Jumper和target机器账号
查看>>
UITableViewCell分割线不是左对齐的问题
查看>>
CentOS7 编译安装PHP7
查看>>
MySQL常见错误代码及代码说明
查看>>
Cglib动态代理基础使用
查看>>
技术人员,为什么会苦逼
查看>>
使用126邮箱发送邮件的python脚本
查看>>