模板方法模式和C ++中的长参数列表
-
01-10-2019 - |
题
在对我的有用回答之后 最后一个问题 我开始使用具有许多不同选项的类的模板方法模式。没有实现所有这些,我当前对该类的对象的声明现在看起来像这样:
pc < prg, tc, 9, 0, 4, 4, test, true, true, true, true, false, true, true, 10, 0, -1, 3, 3 > mp;
您如何处理长模板参数列表?我应该使用枚举/定义而不是true/fals和数字吗?有常用的替代方案吗?
解决方案
是的,使用枚举(不是定义)而不是true/fals。这样一来,如果您将参数取出订单,则编译器将抱怨。另外,对于读者来说,这还要清楚得多。
至于处理一般的长参数列表----将它们隐藏在Typedef后面,或者将某些模板参数的生成器隐藏在键入后面,并让您改变其他参数。
其他提示
如果我有一个模板参数列表,我宁愿重新考虑我的设计。许多参数通常是不良设计的指示。
我不做C ++,这可能不适用于模板,但是我尝试使用带有长参数列表的普通方法来处理相关参数,并尝试明智地分组它们,并介绍反映分组的参数对象,这样您就有一个更复杂的参数列表。
我会通过单个参数进行评估,该参数是变体类型的集合,例如std :: vector。
不隶属于 StackOverflow