Diferença entre Classe normal e Singleton

4 respostas
brunused

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

4 Respostas

bruno77sa

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

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

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

brunused

po cara, valeu, agora sim eu entendi melhor :smiley:

Vlw chara :smiley:

Anderson_Leite

Fala brunused, da uma olhada nesse post:
http://blog.caelum.com.br/2010/03/10/metaprogramacao-eigenclass-em-ruby/
[]s

saoj

Dá uma olhada nesse screencast que tenta desmistificar isso na prática. A teoria disso é realmente não-trivial.

http://www.guj.com.br/posts/list/200820.java

Criado 3 de fevereiro de 2010
Ultima resposta 14 de mar. de 2010
Respostas 4
Participantes 4