在我开始在周末编写代码之前,我正在玩Ruby中强制类关系的方法。我正在尝试复合关系,但是我可以从Commodity类之外控制PriceSeries类。
显然这不是,但是有理由设置这样的设置吗?我是否认为这会产生私有数据并且可能适合存储用户实例的密码(例如)?
class ExcelFile
def initialize(name)
@name = name
end
end
class Commodity
def initialize(name)
@name = name
end
def new_price_series(name, source)
name = PriceSeries.new(name, source)
end
class PriceSeries
attr_accessor(:name) #Without this line, is there any point of this class??
def initialize(name, source)
@source = source
@name = name
end
end
end
mm8_prices = ExcelFile.new("some_exlsx_file")
gold = Commodity.new("gold")
gold.new_price_series(:xau, mm8_prices)
答案 0 :(得分:0)
你能解释一下你在Ruby中强制执行类关系的意思吗?和'复合关系'?
在Ruby中的另一个类中定义一个类,就像你在示例中所做的那样,并没有给出任何一个类的特殊权限,它只是将内部命名为' inner'类。即PriceSeries
(在Commodity
之外引用时)为Commodity::PriceSeries
。
这与在C#和Java等语言中定义内部类不同。