大类重构规则

时间:2010-08-12 23:11:42

标签: oop

这是与我几分钟前提出的问题有关的另一个问题。如果我有一个课程,我认为只有一个职责,但有很多业务规则,而且课程很大,大约4000行或更多,可以不将课程重新分解为多个课程。

3 个答案:

答案 0 :(得分:2)

4000行是太多了。要么你有500个方法,要么你有很长的方法。我无法看到一种可以管理的方式。看起来很明显,但我建议你先将类似的方法/变量分组在一起。例如所有成本数据都转入productCost类等。使用查询方法而不是许多方法使用的计算字段。

答案 1 :(得分:1)

4,000线类不是很容易维护。可能很难单独测试逻辑部分。分解它的一个更实际的原因是,如果多个程序员被分成多个类,它们可以并行处理它。如果它是一个类,那就更难了。

通过将其视为一个单一的怪物,您失去了许多良好的软件质量属性。有更好的模式可以降低其内在的复杂性,即使它真的具有凝聚力。

答案 2 :(得分:0)

我会说“不”。 4,000行太大了。

我会检查业务规则,看看它们是否暗示这个类是否真的是复合的。特别是,如果可以将业务规则集划分为合理的子集,那么每个子集可能都表明您的类需要被分解为组件,每个组件都有自己的业务规则集,并且规则应该是在各组成部分之间分配。

我还会考虑将业务规则重构为更紧凑的表示。