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

İsm*_*vuz 5 java dao overloading naming-conventions method-names

DAO 方法的标准命名约定DAO 类方法命名 问题相关。

为什么 DAO 类中的方法是这样的:

getUserById(int id)
getUserByUsernameAndPassword(String username, String password)
Run Code Online (Sandbox Code Playgroud)

代替:

getUser(int id)
getUser(String username, String password)
Run Code Online (Sandbox Code Playgroud)

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

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

问候。

Kay*_*man 4

您提出的命名方案有两种(明显的)失败方式。

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

getUser(int id);
getUser(int age);
getUser(String username, String password);
getUser(String firstname, String lastname);
Run Code Online (Sandbox Code Playgroud)

第二种方式,不清楚的代码要求您验证参数类型和名称:

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

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