02 设计模式之--模版设计模式
2012-10-03 22:42
183 查看
模版模式设计步骤: 1. 写出解决某一类问题的固有的模版代码 2. 抽取模版代码中可变的部分,形成独立的函数 3. 可变部分抽取的函数定义为抽象函数,类定义为抽象类 4. 创建实现类继承并实现父类的未实现的函数 5. 为了避免子类重写父类的模版代码,需要将模版代码修饰为finalabstract class RunCode //3.有抽象方法code()所以必须定义为抽象类 { // 1.计算一段代码的运行时间 public final void getRuntime(){ //5.方法为最终代码final修饰 // 获取运行前系统的当前时间 毫秒 一秒 = 1000毫秒 long start = System.currentTimeMillis(); // 测试代码 code(); //2.调用需要测试运行时间的方法, // 运行结束后获取系统的当前时间 long end = System.currentTimeMillis(); //结束时间减开始时间等于运行用时 System.out.println("运行时间: " + ( end - start ) ); } public abstract void code();//3.不知这方法如何实现,定义成抽象 }
[code]class MyRunCode extends RunCode //4.实现类 继承抽象类
{
public void code(){ //4.实现抽象方法
for (int i = 0;i<100 ;i++ )
{
System.out.println("目前打印的是第"+i+"次");
}
}
}
class Demo //演示类 { public static void main(String[] args) { new MyRunCode().getRuntime(); //调用 } }
[/code]
模板设计模式方式二: 接口版 接口版比较适合在同一个类中出现重复代码时 将重复代码封装成一个函数.定义接口,与接口实现类进行实现 案例: 模板设计模式基于接口版package com.tu.test; import org.junit.Test; /*** * 模板设计模式基于接口版 * @author ComTu */ public class Template_Inter { //接口 public interface RunCode_inter{ //1.编写接口 void code(); //2.编写抽象方法 (接口中方法默认是abstract) } //模板块 //3.编写一个模板代码方法需要带接口类型的参数. public void RunCode(RunCode_inter runcode){ //运行时的毫秒数 long start = System.currentTimeMillis(); runcode.code(); //4.调用接口的code方法 //结束运行的毫秒数 long end = System.currentTimeMillis(); System.out.println("运行时间: "+(end-start)); } //测试函数 @Test public void startFor(){ RunCode(new RunCode_inter(){ //5.模板块 ( 创建接口实现类 ) @Override public void code() { //6.需要在模板中执行的代码 for (int i = 0; i < 10000; i++) { System.out.println("i : "+i); } } }); } }
如果非要在其它类中进行调用的话可以使用如下方法:package com.tu.test; public class Test { public static void main(String[] args) { //导入 类名.接口名 类似与java.util.Map.Entry Map接口.Entry接口 new Template_Inter().RunCode(new com.tu.test.Template_Inter.RunCode_inter(){ //5.模板块 (创建接口实现类) @Override public void code() {//6.模板中执行的代码. System.out.println("运行的代码..."); } }); } }
相关文章推荐
- 黑马程序员_Java基础[14]_模版设计模式、习题练习
- 【设计模式】动态代理Proxy_02
- .NET设计模式-模版方法(Template Method)
- 设计模式 之 模版模式
- [ASP.NET 设计模式] 用Visual Studio2010搭建一个简单的分层结构示例Step by Step —— 02 业务逻辑层
- 设计模式之十六:模版模式
- 【Java设计模式02】——工厂模式
- go语言实现设计模式(三):模版模式
- iOS设计模式(02):单例模式
- spring_HibernateTemplate(Hibernate模板)_模版设计模式
- 设计模式学习笔记02
- 设计模式02:面向对象设计原则
- 设计模式系列之02-抽象工厂模式(Abstract Factory)
- 23种设计模式(6):模版方法模式
- 设计模式学习之模版方法模式
- 23种设计模式(6):模版方法模式
- Java编程思想笔记02:组合与继承、final、策略设计模式与适配器模式、内部类、序列化控制(注意事项)
- 设计模式--模版方法模式(Templet Method Pattern)
- java笔记--设计模式之模版方法模式
- 学习设计模式-模版方法