在红宝石中使用成分

pyt*_*ips 4 ruby composite composition

我是新Ruby,但一年多来都是.net开发者.我希望在我的几个模型中实现组合,以确保它们尽可能松散耦合,但不知道从哪里开始,或者如果这是真的需要,我仍然在考虑像.net dev.

任何人都可以给我一些指示从哪里开始.

干杯科林G.

ste*_*enr 8

你是说这种事吗?

class Engine
    attr_reader :horsepower, :litres
end

class Gearbox
    attr_reader :manufacturer, :model_no
end

class Car
    def initialize(engine, gearbox)
        raise "Invalid Engine Object" if !engine.kind_of(Engine)
        raise "Invalid Gearbox Object" if !gearbox.kind_of(Gearbox)
        @engine = engine
        @gearbox = gearbox
    end
end


car = Car.new(Engine.new, Gearbox.new)