我有一个java.util.Map
,它从逻辑名称映射到一组要用于该名称的参数。
Map<String,Parameters> howShouldINameThee = ...;
这张地图的最佳名称是什么?
我应该简单地调用此parameters
或parametersMap
吗?
我是否在名称paramtersByName
中包含有关密钥的信息,以便如何使用String
密钥更明显?
答案 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。