子方法处理太多情况的问题

重构代码时经常遇到一个子方法(或者类)有复杂的if-else,可以处理多种情况。

此时该方法的调用者貌似很简单,只需要简单的调用该方法即可。但事实上,所有的复杂逻辑都落到该子方法钟。

结果导致子方法的本来互不关联的调用者也变得互相耦合。即,我只想因为调用者A修改子方法,则因为子方法被修改,其他调用者都可能受到散弹式影响。对子方法的修改,必须考虑其各种调用者的实际使用情况。

所以越是子方法,越应该处理更少的情况。将复杂的逻辑交给调用者来处理。当然如果仅仅是简单的多个状态处理,例如strcpy中判断string地址是否为空,在不影响理解难度的情况下,还是放在子方法中处理空和非空两种情况更简单。

原文地址:https://www.cnblogs.com/xichengtie/p/4126471.html