標籤:style blog http java color 使用
模板方法模式:定義一個演算法的執行骨架,將具體的演算法實現延遲到子類完成。
模板方法模式需要開發抽象類別和具體子類的設計師之間的協作。一個設計師負責給出一個演算法的輪廓和骨架,另一些設計師則負責給出這個演算法的各個邏輯步驟。代表這些具體邏輯步驟的方法稱做基本方法(primitive method);而將這些基本方法匯總起來的方法叫做模板方法(template method),這個設計模式的名字就是從此而來。
舉個例子: 在現實生活中,很多事情都包含幾個實現步驟,例如請客吃飯,無論吃什麼,一般都包含點單、吃東西、買單等幾個步驟,通常情況下這幾個步驟的次序是:點單 --> 吃東西 --> 買單。在這三個步驟中,點單和買單大同小異,最大的區別在於第二步——吃什嗎?吃麵條和吃滿漢全席可大不相同。
代碼說明一切
這裡,代碼以一個看模版方法用了多少時間的例子來說明一下:
package com.yydcdut.java2;public abstract class GetTime { public void getTime() { long time1 = System.currentTimeMillis(); this.doSomething(); long time2 = System.currentTimeMillis(); System.out.println("耗時:"+(time2-time1)); } public abstract void doSomething();}
package com.yydcdut.java2;public class Demo extends GetTime { @Override public void doSomething() { for(int i=0;i<10000;i++) System.out.println(""+i); }}
package com.yydcdut.java2;public class Main { public static void main(String[] args) { GetTime gt = new Demo(); gt.getTime(); }}
總結
模板方法模式:抽象的骨架類,具體的實作類別。
優點:使用模板方法模式,在定義演算法骨架的時候,可以靈活的實現具體的演算法。滿足使用者多變的需求。
缺點:假如演算法骨架有改動,就需要修改抽象類別,那麼,具體的實作類別,也會跟著修改。
我是天王蓋地虎的分割線
原始碼:http://pan.baidu.com/s/1dD1Qx01
java模版.zip
轉載請註明出處:http://www.cnblogs.com/yydcdut