如何为具有动态属性的对象建模?
How to model an object with dynamic properties?
我正在尝试制作一个零售商店程序,仅供练习。它由一个简单的 window 和一个可编辑的 JTable 组成,显示现有的待售商品及其属性(价格、库存、名称等)我希望这些属性可以完全自定义(添加或删除任何内容),所以我的想法是制作一个“项目”class,其中包含一个“属性”对象列表。在“属性”class中我写了两个变量如下
String name;
Float value;
我遇到的问题是,如果 属性 不是数值怎么办?例如产品的名称。我已经想到了可能的解决方案,但我不相信他们,所以我想听听你会怎么做,或者在良好的编程实践方面什么是最好的选择。
到目前为止,我已经有了这些想法:
- 使用字符串类型:但这不会让我将值作为数字进行操作,我可能需要价格(尽管我知道我可以使用parseFloat() 或类似的但它似乎不是最佳的)
- 使用对象类型:这样我需要将值存储在某处,以便稍后转换它,我可以使用枚举类型来完成它,但是每次都转换看起来有点像硬编码,我认为也不是一个好主意
即使您将自己局限于数字属性,价格与重量也是不同类型的数字。添加字符串属性使得仅管理一个 属性 class.
变得更加困难
一个答案是有多个 属性 class。一种用于字符串,一种用于整数,一种用于价格。将价格与其他数字分开的一个原因是您在加减价格时要小心。
我正在尝试制作一个零售商店程序,仅供练习。它由一个简单的 window 和一个可编辑的 JTable 组成,显示现有的待售商品及其属性(价格、库存、名称等)我希望这些属性可以完全自定义(添加或删除任何内容),所以我的想法是制作一个“项目”class,其中包含一个“属性”对象列表。在“属性”class中我写了两个变量如下
String name;
Float value;
我遇到的问题是,如果 属性 不是数值怎么办?例如产品的名称。我已经想到了可能的解决方案,但我不相信他们,所以我想听听你会怎么做,或者在良好的编程实践方面什么是最好的选择。
到目前为止,我已经有了这些想法:
- 使用字符串类型:但这不会让我将值作为数字进行操作,我可能需要价格(尽管我知道我可以使用parseFloat() 或类似的但它似乎不是最佳的)
- 使用对象类型:这样我需要将值存储在某处,以便稍后转换它,我可以使用枚举类型来完成它,但是每次都转换看起来有点像硬编码,我认为也不是一个好主意
即使您将自己局限于数字属性,价格与重量也是不同类型的数字。添加字符串属性使得仅管理一个 属性 class.
变得更加困难一个答案是有多个 属性 class。一种用于字符串,一种用于整数,一种用于价格。将价格与其他数字分开的一个原因是您在加减价格时要小心。