模板方法原理与C++实现
创始人
2024-12-26 13:34:59
0

定义

定义一个操作中的算法骨架(稳定的),而将一些步骤的实现延迟到子类中(变化的)。模板方法使得子类可以复用一个算法的结构,而只改变(重写)这个算法的特定步骤。

C++实现

class Library { public: 	virtual ~Library() {} 	// template method 	void run()  	{ 		step1(); 		step2(); 		step3(); 	} protected: 	virtual void step1() = 0; 	virtual void step2() = 0; 	void step3()  	{ 		// stable method, do something 	} };  class ConcretLibrary : public Library{ protected: 	void step1()  	{ 		// do something 	} 	void step2() 	{ 		// do something 	} };  void main() { 	ConcretLibrary lb; 	lb.run(); } 

类图

请添加图片描述

对比类图和C++实现,其中TemplateMethod就是模板方法,它是子类可以复用的算法结构。对于特定步骤step1、step2他们都是变化的,所以延迟到子类进行实现。

总结
  • 模板方法是一种非常实用且常见的设计模式,它使用简单的机制(虚函数)为应用程序框架提供了灵活的扩展点。
  • 模板方法中被模板方法调用的虚函数可以有具体实现,也可以没有任何实现(纯虚函数),但一般访问权限为protected,因为作为算法的一部分,它没有对外单独开放的必要。

相关内容

热门资讯

第六分钟带你开挂!挂机操作微乐... 《第六分钟带你开挂!挂机操作微乐(辅助挂)一贯真的是有挂(有挂总结)-哔哩哔哩》 挂机操作微乐软件透...
资料外挂!pokemmo脚本辅... wepoker私人辅助器 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大理...
8分钟普及!wepoker免费... 8分钟普及!wepoker免费脚本弱密码,pokemmo辅助脚本,可靠技巧(有挂教学)-哔哩哔哩;w...
第八分钟带你科普!新天道辅助,... >>您好:潮汕激k辅助确实是有挂的,很多玩家在这款潮汕激k辅助游戏中打牌都会发现很多用户的牌特别好,...
第八分钟带你得知!桂林字牌辅助... 第八分钟带你得知!桂林字牌辅助科技app官方下载安装(辅助挂)原来确实有挂(有挂细节)-哔哩哔哩;1...
阶段外挂!xpoker辅助怎么... 阶段外挂!xpoker辅助怎么用,wejoker私人辅助软件,力荐教程(揭秘有挂)-哔哩哔哩您好:w...
7分钟指导!wepoker数据... 7分钟指导!wepoker数据分析工具,aapoker辅助怎么用,安装教程(有挂技巧)-哔哩哔哩;简...
四分钟带你详情!开心泉州辅助,... 四分钟带你详情!开心泉州辅助,微友助手怎么破解,系统教程(有挂方略)-哔哩哔哩微友助手怎么破解ai黑...
第1分钟带你科普!创思维激k看... 第1分钟带你科普!创思维激k看底牌辅助(辅助挂)一直是有挂的(详细教程)-哔哩哔哩;创思维激k看底牌...
秘籍外挂!德州透视hhpoke... 德州透视hhpoker 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大理由...