當我們要完成在某一細節層次上一緻的一個過程或一系列步驟,但在其個别步驟的一個更詳細層次上實作不同時,可以考慮使用模闆方法模式。
模闆方法模式:定義一個操作中的算法骨架,而将一些步驟延遲到子類中。模闆方法模式使得子類可以不改變算法的結構即可重定義算法的某些特定步驟。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0NXYFhGd192UvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcBHczoVd5ckWzQ2MkZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39jM2UjMwYTN2EzNxUDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
AbstractClass是一個抽象類,其實就是一個抽象模闆,定義并實作了一個模闆方法,這個模闆方法一般一個具體的方法,他給出了一個頂級的邏輯架構,而邏輯的組成步驟在相應的抽象操作中,推遲到子類中實作。頂級邏輯也有可能調用一些具體的方法。
模闆方法模式通過把不變行為搬移到超類,去除子類中重複代碼來展現他的優勢。
代碼:
//Template.cpp
// TemplateMethod.cpp