在模板的基礎上,只對某些特定的部分進行變動。
將所有重複的**都上公升到父類上去,而不是讓每個子類都重複。
當我們要完成在某一細節層次一致的乙個過程或一系列步驟,但其個別步驟在更詳細的層次上的實現可能不同
時,我們通常考慮用模板方法來處理。 ————摘自《大話設計模式》
筆者私下認為該模式較為簡單,比較好理解,直接上**:
①、模板類#########################################
/**
* 考題類,模板
*/public abstract class question
protected abstract string answer1(); //考題一的答案,由子類給出具體實現
public void question2()
protected abstract string answer2(); //考題二的答案
}
②、子類#########################################
/**
* 考生一,子類
*/public class examinee1 extends question
@override
public string answer2()
}
/**
* 考生二,子類
*/public class examinee2 extends question
@override
public string answer2()
}
測試類#########################################
public class test
}
執行結果:
ps:兩考生拿到的題目相同,解答不同
設計模式(八) 模板方法模式
設計模式 八 模板方法模式 這幾天雜七雜八的事有點多,停了幾日,今日繼續,今天講最簡單的模板方法,但是卻是用的比較廣泛的。首先來明確下概念吧,模板方法的寫法是這樣,準備乙個抽象類,將部分邏輯以具體方法以及具體建構函式的形式實現,然後宣告一些抽象方法來迫使子類實現剩餘的邏輯。不同的子類可以以不同的方式...
設計模式(八)模板方法模式
它的定義為 定義乙個操作中的演算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變乙個演算法的結構即可重新定義該演算法的某些特定步驟。說的通俗一點,就是為子類設計乙個模板以便於子類復用裡面的方法。為了避免子類惡意修改方法的實現細節,一般模板方法模式都會在方法上加final。我們以泡茶和衝咖啡為例...
設計模式學習(八) 模板方法模式
這是個人學習程式設計模式的系列學習筆記第八篇。採用qt creator進行編寫,但盡量採用c 基礎語法。模板方法模式 template method 定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。如果有乙個場景,從高層次來...