java - DAO方法约定 - 重载或更改方法名称?

时间:2015-08-12 09:32:42

标签: java naming-conventions dao overloading method-names

相关 Standard Naming Convention for DAO MethodsDAO class methods naming 的问题。

为什么DAO类中的方法如下:

getUserById(int id)
getUserByUsernameAndPassword(String username, String password)

而不是:

getUser(int id)
getUser(String username, String password)
像Eclipse一样的IDE中的自动建议将在你开始输入getUser时开始向你展示。根据参数,您可以选择使用哪种方法。

当然这是超载。 为什么人们避免重载并为不同的参数使用不同的方法名称?或者他们正在避免?

问候。

1 个答案:

答案 0 :(得分:4)

您建议的命名方案以2种(显而易见的)方式失败。

第一种方式,冲突的方法签名:

getUser(int id);
getUser(int age);
getUser(String username, String password);
getUser(String firstname, String lastname);

第二种方法,不明确的代码要求您验证参数类型和名称:

// What's being used to search for users in this code?
User user = getUser(poorlyNamedVariable);  

当您的变量不是您认为的类型时,更不用说潜在的错误了。