我需要存储Map<Integer, User>
才能按ID查找用户。在使用Guice之前,我会创建一个UserManager
来组合地图本身,并有2个函数来获取和设置用户。
为了避免需要一个单独的(可能是poltergeist)包装类,创建一个像UserMap extends HashMap<Integer, User>
这样的类并将其绑定到单例实例上被认为是不好的做法吗?然后,我可以只注入UserMap
本身,而无需担心任何其他问题。这可能违反了继承的构成......但考虑到它的唯一目的是作为地图吗?
是否还有其他合适的方法可以存储Map
(和其他)类型,以便在没有静态变量的情况下进行全局访问(即没有静态非Guice UserManager.get(23)
)?
我觉得我正在创建的几十个“管理器”类没用,只是为预先存在的函数提供一个包装器。
答案 0 :(得分:2)
我想说,扩展HashMap
而不是自己的界面会违反最佳做法。
以下是一些原因
Map
的代码最好有一个明确的界面来定义UserManager的职责,随着你的应用程序的进展,这可能会变得更加复杂。