【发布时间】:2015-11-04 19:57:18
【问题描述】:
相关 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 中,如 Eclipse 自动建议将在您开始键入 getUser 时开始显示。并且根据参数,您可以选择使用哪种方法。
当然这是重载。 为什么人们避免重载并为不同的参数使用不同的方法名称?还是他们在逃避?
问候。
【问题讨论】:
-
如果你有两个方法接受 2 个字符串参数怎么办?糟糕,您的命名方案刚刚失败。更不用说,当方法被明确命名时,更容易看到发生了什么。
-
我认为当你有不同的方法名称而不是让我们说5个方法
getUser时它更具可读性。 -
检查哪一个更容易理解。
-
@Kayaman 2 个方法
getUser()都接受 2 个字符串作为参数?为什么?在为getUser等相同操作设计方法之前,重载它们是非常好的做法。如果下一个方法将比前一个方法进行另一个或附加操作,则应使用不同的方法名称 -
@mastah 虽然通常情况下,如果方法除了参数之外没有本质上的不同,那么使用重载通常很有用,但在 DAO(尤其是非平凡的 DAO)中,这可能会导致所描述的坏事在我的回答中。
标签: java naming-conventions dao overloading method-names