相关 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)
像Eclipse一样的IDE中的自动建议将在你开始输入getUser时开始向你展示。根据参数,您可以选择使用哪种方法。
当然这是超载。 为什么人们避免重载并为不同的参数使用不同的方法名称?或者他们正在避免?
问候。
答案 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);
当您的变量不是您认为的类型时,更不用说潜在的错误了。