java

位置:IT落伍者 >> java >> 浏览文章

java设计模式之Template(算法的骨架)


发布日期:2018年02月16日
 
java设计模式之Template(算法的骨架)

Template定义:

定义一个操作中算法的骨架将一些步骤的执行延迟到其子类中

其实Java的抽象类本来就是Template模式因此使用很普遍而且很容易理解和使用我们直接以示例开始:

public abstract class Benchmark

{

/**

* 下面操作是我们希望在子类中完成

*/

public abstract void benchmark();

/**

* 重复执行benchmark次数

*/

public final long repeat (int count) {

if (count <= )

return ;

else {

long startTime = SystemcurrentTimeMillis();

for (int i = ; i < count; i++)

benchmark();

long stopTime = SystemcurrentTimeMillis();

return stopTime startTime;

}

}

}

在上例中我们希望重复执行benchmark()操作但是对benchmark()的具体内容没有说明而是延迟到其子类中描述:

public class MethodBenchmark extends Benchmark

{

/**

* 真正定义benchmark内容

*/

public void benchmark() {

for (int i = ; i < IntegerMAX_value; i++){

Systemoutprinttln(i=+i);

}

}

}

至此Template模式已经完成是不是很简单?看看如何使用:

Benchmark operation = new MethodBenchmark();

long duration = operationrepeat(IntegerparseInt(args[]trim()));

Systemoutprintln(The operation took + duration + milliseconds);

也许你以前还疑惑抽象类有什么用现在你应该彻底明白了吧? 至于这样做的好处很显然啊扩展性强以后Benchmark内容变化我只要再做一个继承子类就可以不必修改其他应用代码               

上一篇:Java 5.0多线程编程

下一篇:在Java平台上进行多线程编程的缺陷