在我工作过的公司中,我见过很多使用前缀来指示变量的范围或来源的情况,例如m
对于班级成员来说,i
对于方法内部变量和a
(or p
) 对于方法参数:
public class User {
private String mUserName;
public String setUserName(final String aUserName) {
final String iUserName = "Mr " + aUserName;
mUserName = iUserName;
}
}
你怎么看待这件事?是否推荐(或者确切地说不推荐)?我发现它在第一阶段相当丑陋,但是我使用它的次数越多,我就越发现它在处理大型方法时非常方便。
请注意我不是在谈论匈牙利表示法,其中前缀表示类型而不是范围。
我也曾在有严格前缀符号要求的商店工作过,但过了一段时间,这变成了一种“气味”,代码已经失去控制,全局变量从各处泄漏,表明代码/审查很差。
Java 的“这个”。符号是引用字段而不是本地字段的首选方式。变量的“m”前缀的使用被“Micro..”公司作为一种品牌噱头而流行(他们甚至说“不要使用它,因为我们这样做”)。
我遵循的一般规则是根据变量用于存储的内容来命名变量。变量名只是一个别名。如果它存储用户名,则 userName 有效。如果它是用户名列表,则 userNames 或 userNameList 有效。但是,我现在避免在变量名中包含“类型”,因为类型经常更改(实际上,用户名的集合不应该是一个集合吗?等等......)
归根结底,如果变量名称有助于您记住代码接下来的用途,那么这可能是个好主意。可维护性和可读性胜过“感知”的效率和简洁的语法,特别是因为现代编译器正在根据宏使用模式重写代码。
我希望这会有所帮助,并且很乐意提供此处任何索赔的更多细节。
附:对于此类问题,我强烈推荐《Java 风格元素》。我曾经和作者一起工作过,他们在风格方面都是天才!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)