İ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 自动建议将开始向您显示两者。您可以根据参数选择要使用的方法。
当然,这是超载。为什么人们避免重载并为不同的参数使用不同的方法名称?还是他们在逃避?
问候。
您提出的命名方案有两种(明显的)失败方式。
第一种方式,方法签名冲突:
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)
更不用说当您的变量不是您认为的类型时潜在的错误。