2011-07-18 43 views
1

Rubyでクラスの関連付けを作成する際に問題があります。動的な型付けされた言語だからです。 Javaでは、次のように書いています。Rubyクラスの関連付け

public class Foo { 
    ... 
} 

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

Rubyで同様のことを書くにはどうすればいいですか?あなたが言うことについては

答えて

3
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 
+0

私はあまり明確ではありませんでした。私はBarに既存のFooオブジェクトを渡したいと思います。 –

+0

私はそれをコンストラクタで渡したいと思いますか?編集中 –

+0

はい、そうです。私はすでにこの解決法について考えてきましたが、コンストラクタで間違った変数を渡すことができたので私にとっては危険に思えます。ダイナミックなタイピングのための価格だと思います。とにかくありがとう! –

関連する問題