我应该如何命名一个java.util.Map?
我有一个java.util.Map
映射从逻辑名称到一组参数使用该名称。
Map<String,Parameters> howShouldINameThee = ...;
这幅地图的名字是什么?
我应该去简单,只是调用这个parameters
或parametersMap
?
我是否像paramtersByName
这样的名称中包含关键字的信息,以便如何使用String
键更明显?
一张地图将东西映射到别的东西上。
我喜欢使用像uidToPerson
这样的uidToPerson
。 “为了”是我能想到的最短的,毫不含糊的方式,以表明我有一张地图。
编辑:
我会补充一点,我更喜欢用这种方式命名地图,因为“key”和“value”按名称顺序出现。 而不是valueByKey
。 在绘图操作中,关键是首先。 你put(key, value)
或get(key)
给出一个值。
当然这是个人喜好的问题。
我倾向于像parametersByName
这样的东西,不要混淆了什么是Map
的内容。 你永远不知道什么时候你将不得不重新访问你很久没有看过的代码。
在Java中,我发现没有必要包含数据结构的名称(比如parametersByNameMap
),因为键入是明确的。
你实际上自己回答这个问题。
这幅地图的名字是什么?
你想映射你的地图到一个名字,所以你说'名称为地图'!
这应该是命名约定,在我看来: valueForKey 。
与其他build议keyToValue和valueByKey,我觉得你需要在末尾添加单词地图,如:keyToValueMap,valueByKeyMap。 在使用时,从语言上可以看出它是一个映射。
在我的应用程序中会有很多types的参数。
例如,在GAE中,当我需要将http请求参数提取为一个可序列化的forms时,我将地图命名为httpRequestParameters或httpReqParams。 sessionAttrs,例如。
对于GWT RPC,客户端到服务器参数散列,我将其命名为client2ServerParams或clnt2SrvrParms,并命名对应的server2clientParams或srvr2ClntParms。
在openid消费者中,我会将地图,consumerAuthRequests或redirectFormParameters及其对应的providerResponses命名。
在重新格式化inputMain参数的映射中,我将其称为inputArgs。
在我的情况下,httpRequestParametersBy名称,client2ServerParamsByName,consumerAuthRequestsByName,inputArgsByName或inputArgValueByKey等将是多余的和太长,因为我总是知道地图的关键是一个“名称”无论如何。 我只是确定这个名字是复数,给我一个暗示它是一个集合。
这种做法的例外是,当关键不是一个名字,而是一个对象,比我将地图命名为vehicleByDriver,projByMgr,toxicFoodListByAnimal。