简化条件表达式
随着时间的推移,条件句的逻辑会变得越来越复杂,也有更多的技术可以解决这个问题。
问题:你有一个复杂的条件句(if - then
/其他的
或开关
).
解决方案:将条件的复杂部分分解为单独的方法:然后
而且其他的
.
问题:您有多个导致相同结果或操作的条件。
解决方案:将所有这些条件合并到一个表达式中。
问题:相同的代码可以在条件的所有分支中找到。
解决方案:将代码移到条件语句之外。
问题:您有一个布尔变量作为多个布尔表达式的控制标志。
解决方案:而不是变量,使用打破
,继续
而且返回
.
问题:你有一组嵌套的条件,很难确定正常的代码执行流程。
解决方案:将所有特殊检查和边缘情况分离到单独的子句中,并将它们放在主检查之前。理想情况下,你应该有一个“固定的”条件列表,一个接一个。
问题:您有一个条件,根据对象类型或属性执行各种操作。
解决方案:创建与条件分支匹配的子类。在它们中,创建一个共享方法,并将代码从相应的条件分支移动到该方法。然后将条件替换为相关的方法调用。结果是,根据对象类的不同,可以通过多态性来实现正确的实现。
问题:因为有些方法会返回零
而不是真实的对象,你有许多检查零
在你的代码中。
解决方案:而不是零
,返回一个显示默认行为的空对象。
问题:为了使一部分代码正确工作,某些条件或值必须为真。
解决方案:用特定的断言检查替换这些假设。