建议如何命名"get/create&get"函数

Bil*_*ias 7 naming

我正在开发一个函数,它通过值(例如,通过名称)从容器(例如数组)返回一个对象.如果该对象尚不存在,则创建并返回该对象的默认副本(默认构造函数).

这样,无论对象在调用函数之前是否存在,该函数总是返回一个对象.

现在我的问题是:如何命名这个功能?GetOrCreateThenGet听起来很愚蠢.有任何想法吗?

编辑:我觉得这样的东西更接近函数的本质:GetForSure ...

小智 6

为什么你需要除了之外的任何东西getXXX().任何方法都有and/ or意味着它正在做很多事情并且正在混淆问题并严重破坏Single Responsibility Principle.

如果对象是按需创建的,那么调用者是否真的关心对象是否需要从合同中获取对象?

getOrCreate意味着你将会getor它的对象,created但不会被返回.

我为什么要关心这个create部分呢?

如果我真的应该关心它将getOrCreateAndGet是语义正确,但非常不正统,并倾向于与同行讨论方法做很多事情,混合关注和打破Single Responsiblity Principle?仅仅因为其他人将事物命名为"笨拙"而非"不感性"并不是一个错误的借口.

  • 获取与GetOrCreate不同,因为Get可能处于不存在所需项目的状态.我通过类比Upsert提出Getsert. (14认同)

小智 6

该功能最合适的名称是“提供”,例如,如果您提供商品,则可以从仓库发货或制造/购买新商品,然后再交付。