gpt4 book ai didi

java - 使用单个绑定(bind)在 Guice 中存储整个 map 是否被认为是不好的做法?

转载 作者:行者123 更新时间:2023-11-30 02:29:20 26 4
gpt4 key购买 nike

我需要存储 Map<Integer, User>以便通过 ID 查找用户。在使用 Guice 之前,我会创建一个 UserManager它将 map 合成在自身内部,并具有 2 个获取和设置用户的函数。

为了避免需要单独的(可能是吵闹的)包装类,创建类似 UserMap extends HashMap<Integer, User> 的类是否被认为是不好的做法?并将其绑定(bind)到单例实例?然后我可以注入(inject) UserMap本身无需担心任何其他事情。这可能违反了组合而不是继承......但考虑到它的唯一目的是充本地图?

还有其他合适的方式来存储Map (和其他)没有静态变量的全局访问类型(即没有静态非 Guice UserManager.get(23) )?

我觉得我正在创建的几十个“管理器”类没有用,只是为预先存在的函数提供了一个包装器。

最佳答案

我想说,扩展 HashMap 而不是创建自己的接口(interface)将违背最佳实践。

有几个原因

  • 如果您稍后想要通过 ID 从数据库中获取用户,则需要重写涉及此 map 的所有代码
  • 让测试变得更容易
  • 简单概述允许执行哪些操作

最好有一个清晰的界面来定义 UserManager 的职责,随着应用程序的进展,UserManager 的职责可能会变得更加复杂。

关于java - 使用单个绑定(bind)在 Guice 中存储整个 map 是否被认为是不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44641257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com