我继承了一些代码,其中有一个 500 行的 switch 语句。基本上,它打开一个string
任务并执行相应的动作。
从那以后,我将每个 case 语句移到了新类中它们自己的方法中。巨大的 switch 语句仍然存在,但不是内联每个案例的逻辑,而是调用一个方法,所以它更整洁。
问题是这些方法修改了很多不同的东西。50% 的方法需要传入 0 个参数。约 40% 需要 5 个参数,其余 10% 需要 10 个参数。
目前这可行,但我想让它变得更好。要么摆脱 switch 语句,要么以某种方式降低传入参数的数量。
我正在考虑使用将sDictionary
映射string
到Action
s 来消除整个开关,但这不起作用,因为我使用了很多 ref 参数(原始类型)并且无法将它们传递给构造函数,并让它们稍后被引用修改。
该问题的明显解决方案是将所有 16 个左右的变量放入一个单独的类中并传递它,但其中很多不是很相关,所以它只是用另一个问题替换一个问题(带有非内聚数据的长参数列表班级)。
想知道是否还有其他方法可以改进此代码。谢谢阅读。