【发布时间】:2013-10-30 14:49:58
【问题描述】:
在代码审查中,我面临一个包含以下方法对的类:
getOrCreateXXXFor(YYY)
getXXXFor(YYY)
(XXX 和 YYY 是两种业务逻辑类型。)我不确定这些是否是理想的名称。
第一个确实和Singleton模式有关,但是有一个参数和
- 返回一个对象,如果它存在或
- 创建并返回它,如果它不存在。
第二个
- 返回与第一个方法相同的对象,但仅限于存在时
- 如果
Exception不存在,则抛出它。
我正在考虑是否应该重命名它们。你有更好的建议吗?
[编辑] 具体来说:
- 名称应该简短而简明地描述所发生的事情(无需阅读文档)
- 两个方法的关系应该通过名字来保留
简而言之,它应该会产生一个干净的 API。 给事物起一个易于理解的名称是软件工艺的核心部分。该主题与排序数组一样很少基于意见。
【问题讨论】:
-
你如何定义一个“理想”的名字?
-
他们返回的是不同的对象吗?
-
这基本上是一种享元模式。为什么不提供
createOrGet和contains方法? -
当有一个方法会为他创建对象而不是抛出异常时,为什么用户要调用一个可能抛出异常的方法?您的问题听起来可以使用单例或享元模式解决
-
为什么这被否决了?
标签: java oop method-names