这种(矩阵)算法是否可以进行优化:
// | case 1 | case 2 | case 3 |
// ------|--------|--------|--------|
// | | | |
// case a| a1 | a2 | a3 |
// | | | |
// case b| b1 | b2 | b3 |
// | | | |
// case c| c1 | c2 | c3 |
// | | | |
switch (var)
{
case 1:
switch (subvar)
{
case a:
process a1;
case b:
process b1;
case c:
process c1;
}
case 2:
switch (subvar)
{
case a:
process a2;
case b:
process b2;
case c:
process c2;
}
case 3:
switch (subvar)
{
case a:
process a3;
case b:
process b3;
case c:
process c3;
}
}
这段代码相当简单,但是随着更多的“switch / case”,你需要想象更复杂的情况。
我使用了3个变量。根据它们取值为1、2、3或a、b、c或alpha、beta、charlie,有不同的处理过程。除了通过一系列“switch / case”来优化之外,还有其他方法吗?
(问题已经在此处用法语提出。)
编辑:(从Dran Dane对下面评论的回应中得出。这些也可以在这个更重要的地方!)
“优化”是指编写更少的代码,减少“switch / case”的数量。这个想法是为了提高可读性、可维护性,而不是性能。
也许有一种通过“责任链”来写更少的代码的方法,但这种解决方案并不是在所有方面都最优的,因为它需要创建许多内存中的对象。