java - DAO 方法约定 - 重载或更改方法名称?
java - DAO methods convention - overloading or change the method name?
相关
Standard Naming Convention for DAO Methods
和
DAO 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);
更不用说潜在的错误,当你的变量不是你认为的类型时。
相关 Standard Naming Convention for DAO Methods 和 DAO 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);
更不用说潜在的错误,当你的变量不是你认为的类型时。