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