Utilizando o padrão Singleton no Ruby
Leia em menos de um minuto
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!