模式定義算法
定義一個操做中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類能夠不改變一個算法的結構便可重定義該算法的某些步驟。c#
模式結構ide
模板方法模式調用順序圖ui
模板方法缺點orm
模板和子類是緊耦合,若是對模板中的算法骨架進行升級,可能會要求對全部相關子類的進行相應的變化。blog
具體例子get
FileGenerator(Hoovers)string
public void Generate() { FillShares(); FillWithAdditionalShares(); Log.Info("","",string.Format("Shares count:{0}", shares.Count)); InitBlocks(); Log.Info("","","InitBlocks work done"); FillBlocks(); Log.Info("","","FillBlocks work done"); GenerateFile(); Log.Info("","","Processed " + shares.Count + " shares."); }
protected abstract DataBlock InitBlockType(string shareClassId);
APIBaseDataCategoryDump(EquityAPI)it