模板方法模式

2021-07-24 14:42:14 字數 1253 閱讀 2299

0.前言

我們知道設計模式這中思想起源於建築學,當然,建築學是因為人類的存在才有的。同樣我們這次講到的模板模式也是一種和現實生活緊密相關的模式。

1.模板模式

定義乙個操作中的演算法框架,而將一些【實現】步驟延遲到子類中,模板方法使得子類可以不改變乙個演算法結構即可重定義該演算法的某些特定步驟。模板模式是乙個類行為型模式。

2.實際案例

不管是在學校還是在公司,我們每個人都要經常做ppt匯報個人工作,但是我們為了簡單和效率,一般都會使用ppt模板。比如說在一張ppt中,首部一般是學校名稱,尾部一般是製作日期,以及匯報人,中間的部分才是整個ppt的關鍵 部分。請用模板模式實現此過程。

3.具體分析

這個模板分為三部分。分別是:

(1)首部,我們稱之為header(),上面顯示學校的名稱showschoolname();

(2)實體部分body(),在其中填充基本資訊writeinformation();

(3)尾部tail(),其中有方法顯示個人資訊showpersonalinformation();

綜上所述,得:

4.實現**

package liu.shen;

/** * 表示抽象ppt模板類

* @author object

* */

public abstract class ppttemplate

//頭部

public void header()

//表示抽象的主體--->需要在不同的子類中實現

public abstract void body();

//尾部

public void tail()

}

package liu.shen;

public class concreteppt extends ppttemplate

}

package liu.shen;

/** * 客戶端類

* @author object

* */

public class client

}

5實現結果
header:anhui normal university

the theme is:how to learn big data?

reporter:littlelawson

6模式總結

模板方法模式

有這樣乙個場景 乙個演算法或流程,它的步驟以及步驟之間的順序是固定的,但具體的某一步可能有不同的實現。對於這麼乙個場景,可以建立多個類,各個類實現不同的實現,但是這樣的缺點是 易錯 難改,易錯 應為步驟和順序是固定的,而且在每個類中都要寫一遍,程式設計師怎有心情不好的時候,就有可能把其中某一步給寫錯...

模板方法模式

模板方法模式 定義乙個演算法框架,將裡面的操作步驟推遲到子類中去執行,這樣使得子類不用改變框架,只需改變某些操作步驟方法 ifndef test h define test h include include using namespace std class test virtual test v...

模板方法模式

模板方法模式 在乙個方法中定義乙個演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法的某些步驟。還可以使用鉤子對可選部分進行判斷。include include using namespace std class caffeinebeverage ...