如何在ruby中创建由对象(类)创建的对象(类)?

时间:2016-04-13 16:36:37

标签: ruby object

想象一下,我有一个对象" House"。在" House"我想要一个对象" Door"和一个对象" Window"用不同的方法,让我们说打开和关闭门/窗。 我的主要目标是使代码看起来像这样:

my_house = House.new
neighbor_house = House.new

my_house.Door.open
neighbor_house.Window.close
neighbor_house.Door.open
neighbor_house.Door.close
my_house.Door.close

1 个答案:

答案 0 :(得分:1)

虽然我不明白,为什么你决定在这里提出这个问题,而不是阅读Ruby语言的一些介绍,答案如下:

class Door
  def open; end
  def close; end
end
class Window
  def open; end
  def close; end
end
class House
  attr_reader :door, :window
  def initialize door, window
    @door, @window = door, window
  end
end

house = House.new Door.new, Window.new
house.door.open
house.window.close