/**模板设计模式:定义一个算法的骨架,而将具体的算法延迟到子类中进行实现* 优点:*  使用模板方法模式,在定义算法骨架的同时,可以很灵活地实现具体的算法,满足用户灵活多变的需求* 缺点:*  如果算法骨架有修改的话,则需要修改抽象类。*/package july.star.template;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
/*** GetTime** @author MoXingJian* @email 939697374@qq.com* @date 2016年12月11日 下午5:35:40* @version 1.0*/
public abstract class GetTime {public long getTime() {long start = System.currentTimeMillis();//以下这些方法都可以调用方法来嵌套进去使用// 操作一// for (int i = 0; i <= 10000; i++) {// System.out.println(i);// }// 操作二/*try {BufferedInputStream bis = new BufferedInputStream(new FileInputStream("a.txt"));BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("b.txt"));byte[] bys = new byte[1024];int len = 0;while((len = bis.read(bys)) != -1){bos.write(bys, 0, len);bos.flush();}bos.close();bis.close();} catch (Exception e) {e.printStackTrace();}*/// 诸如此类的方法。。。。code();  //用于存放以上的方法的代码long end = System.currentTimeMillis();return end - start;}//定义为抽象方法让子类来实现public abstract void code() ;
}//子类实现父类方法
package july.star.template;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/*** Code** @author MoXingJian* @email 939697374@qq.com* @date 2016年12月11日 下午5:56:55* @version 1.0*/
public class Code extends GetTime {// 将需要运行的代码放进其中@Overridepublic void code() {// 操作一/** for (int i = 0; i <= 10000; i++) { System.out.println(i); }*/// 操作二try {BufferedInputStream bis = new BufferedInputStream(new FileInputStream("a.txt"));BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("b.txt"));byte[] bys = new byte[1024];int len = 0;while ((len = bis.read(bys)) != -1) {bos.write(bys, 0, len);bos.flush();}bos.close();bis.close();} catch (Exception e) {e.printStackTrace();}}
}//测试
package july.star.template;/*** GetTimeDemo* 模板设计模式:定义一个算法的骨架,而将具体的算法延迟到子类中进行实现* 优点:*  使用模板方法模式,在定义算法骨架的同时,可以很灵活地实现具体的算法,满足用户灵活多变的需求* 缺点:*  如果算法骨架有修改的话,则需要修改抽象类。* @author MoXingJian* @email 939697374@qq.com* @date 2016年12月11日 下午5:37:46* @version 1.0*/
public class GetTimeDemo {public static void main(String[] args) {//使用前/*GetTime gt = new GetTime();long time = gt.getTime();System.out.println(time+"毫秒");*///使用模板设计模式后,就要新建一个类来将方法写进code()方法中Code c = new Code();long time = c.getTime();System.out.println(time);}
}

模板设计模式,简单Java代码实现相关推荐

  1. 大话设计模式(Java代码)

    第一章 简单工厂模式 ​ 代码无错便是优?非也,想要达到高质量代码的水平,不止要满足当前的需求,程序不容易扩展, 不容易维护,不容易复用,也谈不上高质量. ​ 为什么四大发明里是活字印刷而不是印刷术, ...

  2. 细数23种设计模式以及Java代码实现

    设计模式是在软件开发中,经过验证的,用于解决在特定环境下.重复出现的.特定问题的解决方案. 创建型 创建型模式是抽象对象实例化的过程,用于帮助创建对象的实例. 工厂模式 简单工厂 描述 定义:提供一个 ...

  3. 23种设计模式(java代码实现案例)

    设计模式 创造型.结构型.行为型 创建型: 1.(类)工厂方法(Factory Method) 意图 ​ 定义一个用于创建对象的接口,让子类决定实例化哪一个类.使一个类的实例化延迟到了子类 适用性 ​ ...

  4. 用简单Java代码尝试在控制台写游戏(附源码)

    尝试写了一个在Java控制台运行的代码游戏,由于写这个的时候,博主还没学到可视化界面,也没有学到面向对象,甚至没有集合,运用的全是之前C语言的语法,因此应该很容易看懂吧.末尾附上源码. 以下是效果展示 ...

  5. 史莱姆区块查找 超简单java代码

    现有的史莱姆区块查找器 打不开史莱姆区块查找器,自己写一个算了 步骤: 1.新建一个txt文件,复制下面代码到文件里并保存,然后文件名连同后缀改为 McCheckSlimeChunk.java 2.打 ...

  6. 简单java代码-判断闰年、平年

    import java.util.Scanner; public class Year{public static void main(String[] a){Scanner sc=new Scann ...

  7. 软件设计模式——用Java代码实现物种特征

    题目:某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征.飞行特征和外观特征. 游戏需要模拟的鸭子种类及其特征如下表所示. 首先定义三个接口: 发声特征 public ...

  8. 简单二叉树Java代码实现

    二叉树 文章目录 二叉树 一.二叉树是什么? 二叉树的性质 二.二叉树简单JAVA代码实现 1.Node(节点) 2.MyTree(简单二叉树) 总结 一.二叉树是什么? 二叉树是每个结点最多有两个子 ...

  9. 设计模式——模板设计模式

    一 前言 在面向对象开发过程中,通常会遇到这样的一个问题,我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序,但是,某些步骤的具体实现是未知的,或者说某些步骤的实现是会随着环境的变化而改变,这 ...

最新文章

  1. 如何度过二十多岁这段又穷又迷茫的岁月?
  2. 详解pytorch中的常见的Tensor数据类型以及类型转换
  3. Hadoop集群搭建及MapReduce应用
  4. 《现代操作系统》第3章读书笔记--内存管理(未完成)
  5. windows 7关闭休眠
  6. python字符串中strip() 函数和 split() 函数的详解
  7. 39页第7题 计算2的i次方之和
  8. 老虎Sitemap生成器 0.3
  9. token和session的区别
  10. eclipse下的jrebel配置
  11. 02331 数据结构 二叉树的遍历
  12. Flutter异步编程async与await的基本使用
  13. aws redshift_从本地安装的IDE访问AWS Redshift
  14. C#值类型和引用类型的区别
  15. 针对BT防御方案——飞鱼星路由器
  16. mqtt 服务器 ca 证书,如何将SSL MQTT客户机与CA签名服务器证书连接?
  17. 商标注册证的查询方法
  18. 敬天爱人 大道至简——初读《经营十二条》
  19. Hudi Clean 清理文件实现分析
  20. Mac 如何强制使用 5G 频段 Wi-Fi

热门文章

  1. 初等数论--同余方程--同余方程组:中国剩余定理
  2. 1365. 有多少小于当前数字的数字(哈希表)
  3. 【Flask】数据的CRUD操作之聚合函数
  4. Docker安装及基本使用
  5. kafka for mac安装
  6. Win32 Edit 文本框追加字符串
  7. 创业的和想拿高薪的朋友可以看看,企业安全进行云平台运营的5个关键因素
  8. Android之Xposed框架完全使用指南
  9. 1.7 Java 8中Map新增的方法
  10. 【PAT乙级】1090 危险品装箱 (25 分)