使用模块和类,定义此类关系的最佳方法是什么?
商品有零个或多个价格系列' (聚合),并通过选择ExcelFile对象的一部分来创建价格系列对象。
(excel文件对象是一个已转换为json结构的excel工作簿)
我认为ExcelFile类应该是一个单独的类类......然后我可以实例化一个商品(例如gold = Commodity.new("gold")
)。我可以实例化一个Excel文件(例如yahoo_prices = ExcelFile.new(xlsx_file_name)
)。
但是现在我想使用Commodity名称空间之外的ExcelFile对象来实例化一个PriceSeries对象(在商品对象中)。
我该怎么做?我应该这样做吗?我是在正确的轨道上吗?
我认为这应该是:
class ExcelFile
end
class Commodity
class PriceSeries
end
end
这个"程序"将是一个更大的计划中的一个功能。将所有这些类放在一个模块中然后将它混合到" main"中是不是一个好主意。最终上课?
答案 0 :(得分:2)
你走在正确的轨道上。但是,您的图表显示的是聚合而不是内部类,因为您的代码具有它。所以他们彼此不太一致。我认为你应该使用你的图表并更改你的代码:
class ExcelFile
end
class Commodity
PriceSeries[] myPriceSeriesArray
end
class PriceSeries
end
当然还有更多内容:你必须有办法创建PriceSeries实例并将它们分配给myPriceSeriesArray数组等。但那是基本的想法。
现在,您的图表有一些内容:
*
是0..*
的缩写。由于您需要至少一个PriceSeries和一个ExcelFile,因此需要将这些更改为1..*
。 (假设您可以拥有任意数量的任何一个,只要您至少有一个。)<<file>>
刻板印象放在ExcelFile类上。