它伪装成一个.NET 1.1应用程序处理符合医疗赔付文本文件(ANSI 835)的标准,但它是一个怪物。正在处理的信息涉及医疗保健索赔,EOB和报销。这些文件由在前几个位置具有标识符的记录和根据该类型记录的规格格式化的数据字段组成。某些记录ID是控制分段ID,它划分了与特定事务类型相关的记录组。
要处理的文件,我的小怪物读取第一个记录,确定的那种交易是将要发生,然后开始处理基于什么样的交易也正在处理其他记录。要做到这一点,它使用嵌套的if。由于有多种记录类型,因此需要做出多项决策。每个决策都涉及一些处理和2-3个需要根据以前的决定作出的其他决定。这意味着嵌套如果有很多嵌套。这就是我的问题所在。
如果是715线长这一个嵌套。恩,那就对了。七百和十五青少年线。我没有代码分析专家,所以我下载了几个免费的分析工具,并用49一麦凯布圈复杂度的评价,他们告诉我,这是一个相当高的数字了上来。亚特兰大地区的花粉计数较高,其中100为高标准,新闻称“今天的花粉计数为1,523”。这是我曾经见过的箭头反模式最好的例子之一。在最高处,缩进深度达15个标签。
我的问题是,你会建议什么方法重构或重组这样的事情?
我花了一些时间来寻找的想法,但没有给我一个很好的立足点。例如,用一个警戒条件代替一个等级是一种方法。我只有其中一个。一窝下来,十四个去。
也许有一个设计模式可帮助。命令链会成为解决这个问题的方法吗?请记住,它必须保持在.NET 1.1中。
感谢您的任何和所有的想法。
有趣的想法。我无法想象这会在代码中看起来如何。 – 2008-09-19 22:11:13