Utilizando o padrão Singleton no Ruby
23/07/08
Singleton é um design pattern usado para restringir a instanciação de objetos, fornecendo um ponto global de acesso a uma única instância de uma classe.
No Ruby, você pode utilizar este padrão da maneira mais simples possível. Basta carregar a biblioteca Singleton.
require "singleton"
class Database
include Singleton
def connect
@connection = Adapter.connect
end
end
Ao adicionar o módulo Singleton, você torna o método new privado.
Se você tentar instanciar esta classe, verá um erro como este:
NoMethodError: private method `new' called for Test:Class
from (irb):3
from :0
Para ter acesso à instância da classe Test, você deve utilizar o método instance.
Database.instance.connect
Muito elegante, assim como quase tudo no Ruby!
- Permalink
- Trackback
- Feed dos comentários
- Ao som de: Wonkavision – Rejection Junkie

Comentários #
Cara, eu sei que é uma questão conceitual, mas acho que um Singleton não deveria ser usado como uma "variável global", apesar de muita gente fazer isso.
Ele foi criado para garantir uma única instanciação de determinados objetos.
Abraçs.
Deixe um comentário