您的位置:首页 > 其它

大话设计模式 - 模板方法(Template Method)模式

2014-07-28 22:38 183 查看
模式定义

定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些步骤。
模式结构




模板方法模式调用顺序图




模板方法缺点
模板和子类是紧耦合,如果对模板中的算法骨架进行升级,可能会要求对所有相关子类的进行相应的变化。

具体例子
FileGenerator(Hoovers)

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  模板方法