【问题标题】:Question about singleton property关于单身财产的问题
【发布时间】:2010-05-25 08:12:44
【问题描述】:

我正在阅读此处的枚举 Java 教程并有一个问题:http://java.sun.com/j2se/1.5.0/docs/guide/language/enums.html#Card

我比较困惑的部分如下:

“上面的 Card 类包含一个 返回甲板的静态工厂, 但没有办法得到 个人卡从其等级和 套装。仅仅暴露构造函数 会破坏单例属性 (每个只有一个实例 允许卡存在)。这是如何 编写一个静态工厂 保留单例属性, 使用嵌套的 EnumMap:"

现在据我了解,将原始私有“Card”构造函数更改为 public 将允许我们实例化无限数量的具有给定花色 + 等级的“Card”对象副本。所提议的解决方案是创建一个 EnumMap,它将存储四个 Map(每个花色一个),它们本身包含 13 个 Card 对象,以等级作为键。

所以现在如果你想从牌组中检索一个特定的 Card 对象,你只需调用“valueOf”方法。我现在的问题是,什么是阻止你尽可能多次调用 valueOf 方法的原因?这不会导致与公开原始私有构造函数相同的问题吗?

谢谢。

【问题讨论】:

    标签: java singleton enums static-block


    【解决方案1】:

    没有。 valueOf() 将始终返回相同的实例。请注意,它实际上是在 static 块中实例化所有内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-07
      • 2012-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多