我应该如何选择在Java(或任何其他语言)中使用哪些方法名称和参数名称/类型?为什么有这么多方法可供选择?
如果有很多人在一个项目上工作,那么在代码的不同部分看到不同的命名方式会很烦人,特别是如果人们对它们的使用不一致的话。为什么语言的发明者没有简单地陈述一个标准 - “这是方法和参数应该命名的精确方式。期间。”?
然后编程会更容易。每次我编写一个方法时,我必须在众多不同的参数/方法名称之间做出选择,然后尝试通过代码来选择如何选择。
示例1:
public void handleFile(String file)
public void handleFile(String fileName)
public void handleFile(File file)
示例2:
public void exec(String command)
public void exec(String cmd)
public void exec(String commandString)
public void exec(String cmdString)
public void execute(String command)
public void execute(Command command)
public void execute(Command cmdObj)
等。等
答案 0 :(得分:2)
如果您正在与一群人合作,那么建立编码标准可能是值得的。谷歌这个短语,你会找到例子。
答案 1 :(得分:2)
实际上,Java语言存在命名约定:请参阅http://www.oracle.com/technetwork/java/codeconventions-135099.html
像变量一样的参数应该用camelCase编写,除了众所周知的首字母缩略词(URL,HTTP等)之外,通常不应该缩写,最重要的是,应该描述参数的作用而不是它的类型。它的类型是knwon:它是在论证之前编写的。
所以更喜欢
void copy(SomeClass source, SomeClass destination)
到
void copy(SomeClass someClass1, SomeClass someClass2)
关于您的示例,以下是我接受的内容:
public void handleFile(String fileName)
public void handleFile(File file)
两者都是可以接受的,因为第一个处理名称而第二个处理文件。
public void execute(String command)
public void execute(Command command)
答案 2 :(得分:1)
参数名称是开发人员使用它的提示,应该传递什么。它们应该尽可能清晰,而不是不必要的冗长。
我建议你做你认为更清楚的事情。
答案 3 :(得分:1)
事情是 - 没关系。方法名称更重要,参数名称应该简单地描述参数。试图强制执行有关名称的规则将很难 - 你无法为此制定足够的规则。
另一方面,参数类型很重要 - 您应该选择最具体的参数类型。如果只需要一个文件名,那么传递一个String。如果您需要知道是否可以阅读文件,请传递File
。
答案 4 :(得分:0)
传统上,人们被限制在屏幕上可以容纳的字符数量,因此首选短变量名称。
现在有大屏幕,自动换行和自动完成的日子,你可以根据需要命名。
这一切都取决于你的团队如何决定是最好的方式,你应该执行一个你们都同意的编码标准。
我个人尝试命名变量以准确描述他们持有的内容因此它保持TableViewController
我将其称为tableViewController
,这样我在一天中再次查看代码就很清楚了,周...我使用TableViewController
而不必仔细检查的时间。如果我调用变量tvc
或其他缩写,你可以想到它可能不太明确我的代码的意图是什么。
答案 5 :(得分:0)
通常,第一个选择是camelcase中参数Class的名称:
void someMethod(SomeClass someClass)
除了String / primitive或boxed之外,你赋予它意义并通常删除类型:
void someMethod(String filename) // note filename is so common, it's rarely "fileName"
但有时它只是“一个字符串” - 这里有一些常见的选择
void trim(String aString)
void trim(String string)
void trim(String s)
无论风格如何,您的团队都应该同意命名约定并使用它。