Bom galera, estou começando a estudar Ruby, e me deparei com essa duvida.
Qual a diferença entre Classe normal e Singleton na hora de programa, tem diferença de performance? algo do tipo
Abraço
Bom galera, estou começando a estudar Ruby, e me deparei com essa duvida.
Qual a diferença entre Classe normal e Singleton na hora de programa, tem diferença de performance? algo do tipo
Abraço
olá brunused,
na verdade singleton class, em ruby não é a mesma coisa que classes singleton em outras linguagens, na verdade cada objeto ruby possui uma classe associada que algums chamam de singleton class, ou class oculta veja faça o teste
[code]class Pessoa
end
bruno = Pessoa.new
outra_pessoa = Pessoa.new
aqui acesso a class singleton
def bruno.oi
puts "ola sou bruno "
end
bruno.oi => "ola sou bruno "
outra_pessoa.oi => erro aqui!! metodo não existe
[/code]
o que fiz foi adicionar a class singleton do objeto bruno um metodo que pertence apenas a esse objeto, isso acontece em todos os objetos em ruby, lembrando que classes em ruby também são objetos!! :shock: em relação a performance não vejo problema pois isso é o comportamento padrão da linguagem.
espero ter ajudado abraço
po cara, valeu, agora sim eu entendi melhor
Vlw chara
Fala brunused, da uma olhada nesse post:
http://blog.caelum.com.br/2010/03/10/metaprogramacao-eigenclass-em-ruby/
[]s
Dá uma olhada nesse screencast que tenta desmistificar isso na prática. A teoria disso é realmente não-trivial.