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

java - DAO methods convention - overloading or change the method name?

相关 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)

在 IDE 中,当您开始键入 getUser 时,Eclipse 自动建议将开始向您显示。根据参数,您可以选择使用哪种方法。

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

此致。

您提出的命名方案在 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);  

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