一天一个重构方法(5):引入解释性变量
2009-05-11 16:34:10Introduce Explaining Variable:引入解释性变量
你有一个表达式,有可能非常复杂而难以阅读。这种情况下,临时变量可以帮助你将表达式分解为比较容易管理的形式。将赋值表达式(或其中一部分)的结果放进一个临时变量,以此变量名称来解释表达式的用途。
if ((platform.ToUpper().IndexOf("MAC") > -1) &&
(browser.ToUpper().IndexOf("IE")) > -1 &&
WasInitialized() && resize > 0)
{
//do something
}
在上面的代码中 if 语句内的条件判断你必须完全读完,也不一定很快就能知道它们的用意,但是按下面方式重构后,你可能很快就能读懂代码:
bool isMacOs = platform.ToUpper().IndexOf("MAC") > -1;
bool isIEBrowser = browser.ToUpper().IndexOf("IE") > -1;
bool wasResized = resize > 0;
if (isMacOs && isIEBrowser && WasInitialized() && wasResized)
{
//do something
}