【问题标题】:Java - Model class with so many properties vs one single HashMap<key,value>Java - 具有如此多属性的模型类与单个 HashMap<key,value>
【发布时间】:2016-02-08 17:48:57
【问题描述】:

我正在尝试读取多个文本文件(每个文件具有不同的布局/架构)。

目前我的 Model 类有 40 多个属性,并且是硬编码的。

我打算使用HashMap,所以每次有新文件出现时,我可以通过添加更多属性来读取文件而无需更改模型类。

但这是正确的做法吗?

请指教。

【问题讨论】:

  • 如果这些属性对您的应用程序没有特殊意义,而只是命名值,那么,是的,使用映射。如果您的 40 个 setter 方法中的每一个都必须执行特定甚至独特的操作,那么您可能拥有真正的属性,否则您只有一种映射。
  • @Holger :谢谢,如果我使用 HashMap 会减少堆中的对象大小吗?
  • 当所有值都存在时,HashMap 可能比专用对象消耗更多空间。但是,如果很多值是可选的且不存在,则可以节省一些空间。但这不应该推动您的设计决策。

标签: java model java-8


【解决方案1】:

这两种方法各有利弊。 Map 为您提供了预先未知但可能成为维护中的噩梦的模式的灵活性,并且它不是错误安全的 - 即您的类型没有被检查。具有预定义属性的 bean 则相反。一般来说,这是更好的选择,但每次架构更改时您都必须更改它。您可以采用组合方法。假设您有一组始终存在的属性。然后你可能有也可能没有其他一些事先未知的属性。因此,您有一个带有预定义 setter 和 getter 的 bean,并为将处理未知属性的 Map 属性添加了另一个 setter 和 getter。我希望这会有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-11
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多