简化方法调用
这些技术使方法调用更简单、更容易理解。这反过来又简化了类之间交互的接口。
问题:方法的名称并不能解释方法的作用。
解决方案:重命名方法。
问题:方法没有足够的数据来执行某些操作。
解决方案:创建一个新参数来传递必要的数据。
问题:在方法的主体中不使用参数。
解决方案:删除未使用的参数。
问题:你有一个方法,返回一个值,但也改变一个对象内部的东西吗?
解决方案:将该方法拆分为两个单独的方法。如您所料,其中一个返回值,另一个修改对象。
问题:多个方法执行类似的操作,只是它们的内部值、数字或操作不同。
解决方案:通过使用传递必要特殊值的参数来组合这些方法。
问题:一个方法被分成几个部分,每个部分的运行取决于一个参数的值。
解决方案:将方法的各个部分提取到它们自己的方法中,并调用它们,而不是调用原来的方法。
问题:从对象中获取几个值,然后将它们作为参数传递给方法。
解决方案:相反,尝试传递整个对象。
问题:调用查询方法并将其结果作为另一个方法的参数传递,而该方法可以直接调用查询。
解决方案:与其通过参数传递值,不如尝试在方法体中放置查询调用。
问题:方法包含一组重复的参数。
解决方案:用一个对象替换这些参数。
问题:字段的值应该只在创建时设置,在创建后的任何时候都不能更改。
解决方案:因此,删除设置字段值的方法。
问题:方法不被其他类使用,或者只在它自己的类层次结构中使用。
解决方案:将方法设置为私有或受保护。
问题:你有一个复杂的构造函数,它所做的不仅仅是在对象字段中设置参数值。
解决方案:创建一个工厂方法并使用它来替换构造函数调用。
问题:方法返回一个表示错误的特殊值?
解决方案:而是抛出一个异常。
问题:您在一个简单的测试就可以完成工作的地方抛出异常?
解决方案:将异常替换为条件测试。