【问题标题】:How to model an object with dynamic properties?如何为具有动态属性的对象建模?
【发布时间】:2020-02-05 00:10:57
【问题描述】:

我正在尝试制作零售店计划,只是为了练习。它由一个带有可编辑 JTable 的简单窗口组成,显示要出售的现有商品及其属性(价格、库存、名称等)我希望这些属性可以完全自定义(添加或删除任何),所以我想到的方法是创建一个包含“属性”对象列表的“项目”类。在“属性”类中我写了两个变量如下

String name;
Float value;

我的问题是,如果属性是非数值怎么办?比如一个产品的名称。我已经想到了可能的解决方案,但我不相信它们,所以我想听听你会怎么做,或者就良好的编程实践而言,最好的选择是什么。

到目前为止,我已经提出了这些想法:

  • 使用字符串类型:但这不会让我将值作为数字进行操作,我可能需要价格(虽然我知道我可以使用 parseFloat() 或类似方法来解决这个问题,但它没有'似乎不是最佳的)
  • 使用 Object 类型:有了这个,我需要将值的类型存储在某个地方,以便稍后进行转换,我可以使用 Enum 类型来执行它,但每次转换看起来有点像硬编码,我认为也不是一个好主意

【问题讨论】:

标签: java oop object-oriented-analysis


【解决方案1】:

即使您仅限于数字属性,价格也是不同于重量的数字类型。添加字符串属性使得只管理一个属性类变得更加困难。

一个答案是拥有多个属性类。一种用于字符串,一种用于整数,一种用于价格。将价格与其他数字分开的一个原因是,在加减价格时要小心。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    相关资源
    最近更新 更多