Inline Method(内联函数)
一、Inline Method
概述
一个函数,其本体(method body)应该与其名称(method name)同样清楚易懂.
动机(Motivation)
以简短的函数表现动作意图,这样会使代码更清晰易读.但有时候你会遇到某些函数.其内部代码和函数名称同样清晰易读.也可能你重构了该函数,使得其内容和其名称变得同样清晰.果真如此,你就应该去掉这个函数,直接使用其中代码,间接可能带来帮助,但非必要的间接性总是让人不舒服.
作法(Mechanics)
1、检查函数,确定它不具多态性(is not ploymorphic)
如果subclass继承了这个函数,就不要将此函数inline化。因为subclass无法覆写(override)一个根本不存在的函数。
2、找出这个函数的所有被调用点。
3、将这个函数的所有被调用点都替换为函数本体(代码)。
4、删除该函数的定义。
public class InlineMethod {
//内联之前
public String getUserInfo(int age)
{
return MoreThenTen(age) ? "有财 王" : null;
}
public boolean MoreThenTen(int age)
{
return age > 10;
}
//内联之后
public String getUserInfoAfterInlineMethod(int age){
return (age > 10) ? "有财 王" : null;
}
}