Ассоциации классов Ruby - PullRequest
2 голосов
/ 18 июля 2011

У меня проблемы с созданием ассоциации классов в Ruby, поскольку это язык динамической типизации.В Java я пишу так:

public class Foo {
   ...
}

public class Bar {
   public Foo foo;
   ...
}

Как мне написать что-то подобное в Ruby?

1 Ответ

4 голосов
/ 18 июля 2011
class Foo

end

class Bar

  attr_accessor :foo

  def initialize (foo)
    @foo = foo
  end

end

foo = Foo.new
bar = Bar.new(foo)

puts bar.foo

Для того, что вы говорите, кажется, вам нужен какой-то тип безопасности .Вы можете достичь чего-то подобного, выполнив

def initialize (foo)
  raise ArgumentError, "You must provide a valid Foo instance" unless foo.instace_of?(Foo)
  @foo = foo
end
...