模板方法模式實踐小結

2021-09-01 22:15:48 字數 725 閱讀 6740

模板方法模式用於固定演算法的骨架,讓具體演算法在子類中擴充套件,類圖如下:

最顯著的特點是模板方法templatemethod()已經不需要在子類中覆蓋

head first設計模式這本書中對這個演算法有深入分析,可以參考

接下去要講的是專案中對這個模式的應用.首先有個productchecker的父類,定義了演算法的模板:

package com.jingshou.partern;

public abstract class productchecker

protected void login()

protected abstract void checkdbcon();

protected abstract void checkurl();

protected abstract void checkohter();

}

當我們有十幾個product需要做檢查的時候,讓每個子product去繼承productchecker,並且在必要的時候覆蓋checkurl(), checkdbcon(), checkother()方法.以應對不同的product使用不同的方法去檢查系統

總結:

本文出自"

lijingshou

模板方法模式實踐

在實際程式設計中,會經常遇到多個類中的某些方法實現邏輯類似的情況,這時我們可以將這些類中的相同部分抽象到父類中,對於有差異的地方,子類根據自身的實際需求來各自實現。以羽毛球運動為例,打球必有發接髮環節,發球分正手和反手兩種 這裡不談論羽球技術細節 一般男單反手發球,女單正手發球,但發接髮這個環節的流...

模板方法模式

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

模板方法模式

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