【问题标题】:Hashmap key inside value object paradigm [closed]值对象范式内的Hashmap键[关闭]
【发布时间】:2021-11-04 17:59:30
【问题描述】:

每当我使用地图时,都会出现这种设计模式。我发现自己在值内也有地图的键。例如:

private Map<UUID, PlayerData> allPlayerData = new HashMap<>();

在这个例子中,我的 UUID 是关键,我在 PlayerData 对象中也有 UUID。

我的问题是,这是一种可接受的设计模式还是有更好的方法来实现这一点?

【问题讨论】:

  • 这是一种很常见的模式。我认为这不是问题。
  • 是的。考虑一个Map&lt;Integer, Student&gt;,以便可以轻松检索给定整数IdStudentIdStudent 类中的一个字段是很正常的。
  • 确保 PlayerData 的 UUID 字段是不可变的,因为如果由于某种原因它更改了您的地图,您的地图将不再具有正确的映射。

标签: java design-patterns hashmap bukkit code-organization


【解决方案1】:

当您希望基于对象本身的某些属性快速访问某个集合中的对象时,这是一种非常常见且方便的模式。请记住,即使在两个地方使用了对这个“重复”属性的引用,该值在内存中仍然只有一次((小)原语除外)。

【讨论】:

    【解决方案2】:

    其实它不是设计模式,但是也看不出有什么问题。

    使用 HashMap 作为某种索引或缓存,并经常使用从 value 属性生成的 key。

    【讨论】:

      猜你喜欢
      • 2014-10-29
      • 1970-01-01
      • 2019-12-22
      • 1970-01-01
      • 2013-09-04
      • 2014-02-24
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      相关资源
      最近更新 更多