我正在开发一个函数,它通过值(例如名称)从容器(例如数组)返回一个对象。如果该对象尚不存在,则创建并返回该对象的默认副本(默认构造函数)。
这样,这个函数总是返回一个对象,无论对象在调用函数之前是否存在。
现在我的问题是:如何命名这个功能? GetOrCreateThenGet 听起来很愚蠢。有什么想法吗?
编辑:我觉得这样的事情更接近函数的本质: GetForSure ......
答案 0 :(得分:5)
为什么除了getXXX()
之外还需要其他任何内容。任何具有and
/ or
的方法都意味着它正在做很多事情并且正在混淆问题并严重违反Single Responsibility Principle
。
如果对象是按需创建的,那么调用者是否真的关心对象是否需要合同来获取对象?
getOrCreate
表示您get
对象or
将created
但不会返回。
为什么我会关心create
部分呢?
如果我真的应该关心它会getOrCreateAndGet
在语义上是正确的,但是非常不正统,并且倾向于与同行讨论如何处理许多事情并混淆问题和打破Single Responsiblity Principle
?仅仅因为其他人将事物命名为“笨拙”和“非感性”并不是一个错误的理由。
答案 1 :(得分:5)
该功能最合适的名称是"提供"就像你提供商品一样,你可以从仓库发货,或者买/买一个新货,然后送货。
答案 2 :(得分:-1)
GetGuaranteed 似乎涵盖了所有来电者需要了解的信息......