5

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

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

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

代替:

getUser(int id)
getUser(String username, String password)

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

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

问候。

4

1 回答 1

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);  

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

于 2015-08-12T09:43:59.723 回答