Java設計形式之模板形式(Template形式)引見。本站提示廣大學習愛好者:(Java設計形式之模板形式(Template形式)引見)文章只能為提供參考,不一定能成為您想要的結果。以下是Java設計形式之模板形式(Template形式)引見正文
Template形式界說:界說一個操作中算法的骨架,將一些步調的履行延遲到其子類中。
其實Java的籠統類原來就是Template形式,是以應用很廣泛。並且很輕易懂得和應用,我們直接以示例開端:
public abstract class Benchmark
{
/**
* 上面操作是我們願望在子類中完成
*/
public abstract void benchmark();
/**
* 反復履行benchmark次數
*/
public final long repeat (int count) {
if (count <= 0)
return 0;
else {
long startTime = System.currentTimeMillis();
for (int i = 0; i < count; i++)
benchmark();
long stopTime = System.currentTimeMillis();
return stopTime - startTime;
}
}
}
在上例中,我們願望反復履行benchmark()操作,然則對benchmark()的詳細內容沒有解釋,而是延遲到其子類中描寫:
public class MethodBenchmark extends Benchmark
{
/**
* 真正界說benchmark內容
*/
public void benchmark() {
for (int i = 0; i < Integer.MAX_VALUE; i++){
System.out.printtln("i="+i);
}
}
}
至此,Template形式曾經完成,是否是很簡略?看看若何應用:
Benchmark operation = new MethodBenchmark();
long duration = operation.repeat(Integer.parseInt(args[0].trim()));
System.out.println("The operation took " + duration + " milliseconds");
或許你之前還困惑籠統類有甚麼用,如今你應當完全明確了吧?至於如許做的利益,很明顯啊,擴大性強,今後Benchmark內容變更,我只需再做一個繼續子類便可以,不用修正其他運用代碼。