我该如何命名java.util.Map?

时间:2010-02-12 16:45:39

标签: java map naming-conventions

我有一个java.util.Map,它从逻辑名称映射到一组要用于该名称的参数。

Map<String,Parameters> howShouldINameThee = ...;

这张地图的最佳名称是什么?

我应该简单地调用此parametersparametersMap吗?

我是否在名称paramtersByName中包含有关密钥的信息,以便如何使用String密钥更明显?

4 个答案:

答案 0 :(得分:82)

地图会将映射到其他内容 我喜欢使用像uidToPerson这样的名字。 “以”是我能想到的最短的明确方式来表明我有一张地图。

编辑:
我要补充一点,我更喜欢以这种方式命名地图,因为“key”和“value”在名称中以该顺序出现。与valueByKey相反。在映射操作中,关键是第一位的。提供值的put(key, value)get(key)

当然这是个人偏好的问题。

答案 1 :(得分:26)

我倾向于parametersByName这样的事情,不会混淆Map的内容。你永远不知道什么时候你将不得不重新访问你很久没有看过的代码。

在Java中,我发现不必包含数据结构的名称(如parametersByNameMap),因为输入是显式的。

答案 2 :(得分:8)

你实际上自己回答了这个问题。

  

这张地图的最佳名称是什么?

您希望将地图映射到某个名称,因此您要为地图命名&#39; !!

在我看来,这应该是命名约定: valueForKey

使用其他建议keyToValue和valueByKey,我觉得你需要在最后添加单词Map,如下所示:keyToValueMap,valueByKeyMap。当您使用 For 时,从语言中可以看出它是映射。

答案 3 :(得分:1)

在我的应用中,会有很多类型的参数。

例如,在GAE中,当我需要将http请求参数提取为可序列化的形式时,我将地图命名为httpRequestParameters或httpReqParams。例如,sessionAttrs。

对于GWT RPC,客户端到服务器参数哈希,我将其命名为client2ServerParams或clnt2SrvrParms,并命名对应的server2clientParams或srvr2ClntParms。

在openid使用者中,我会将地图命名为consumerAuthRequests或redirectFormParameters及其对应的providerResponses。

在重新格式化的输入主要参数的地图中,我将其称为inputArgs。

在我的情况下,httpRequestParametersBy name,client2ServerParamsByName,consumerAuthRequestsByName,inputArgsByName或inputArgValueByKey等会冗余且太长,因为我总是知道地图的键无论如何都是“名称”。我只是确保这个名字是复数,以便让我知道它是一个集合。

这种做法的例外情况是,当键不是名称而是对象时,我会将地图命名为vehicleByDriver,projByMgr,toxicFoodListByAnimal。