9.3 放在一起以消除重复
Last updated
Last updated
如果你发现同一模式的代码反复出现,看看你是否可以重新组织代码,以消除重复的内容。一种方法是将重复的代码分解成一个单独的方法,用对该方法的调用取代重复的代码片段。如果重复的代码片段很长,而且替换的方法有一个简单的签名,那么这种方法是最有效的。如果代码片段只有一两行长,用方法调用来替换它可能没有什么好处。如果该代码段以复杂的方式与环境进行交互(如访问许多局部变量),那么替换方法可能需要一个复杂的签名(如许多通过引用传递的参数),这将降低其价值。
另一种消除重复的方法是重构代码,使有关的代码段只需要在一个地方执行。假设你正在编写一个需要在几个不同的位置返回错误的方法,而在返回之前需要在每个点上执行相同的清理动作(见图9.1的例子)。如果编程语言支持goto
,你可以把清理代码移到方法的最末端,然后在每个需要返回错误的位置goto
这个代码段,如图9.2所示。Goto
语句通常被认为是一个坏主意,如果不加选择地使用,可能会导致代码难以理解,但在像这样的情况下,它们是很有用的,可以用来摆脱嵌套代码。