Title / Description
Code module PadraoSingleton def getInstancia (self.class_variable_get :@@instance) end def self.included(mod) # criando a unica instancia da classe mod.class_variable_set :@@instance , mod.new #extendendo o proprio modulo para tornar o metodo getInstancia estático mod.extend(self) # colocando o constructor como privado mod.private_class_method :new end end class Conexao # incluindo o modulo PadraoSingleton # nesse momento a classe tem seu construtor modificado para privado # e adiquire o metodo getInstancia include PadraoSingleton attr_accessor :banco end c1 = Conexao.getInstancia # variavel 1 c1.banco = "dbpadrao" puts c1.banco c2 = Conexao.getInstancia # variavel 2 puts c2.banco c2.banco = "dbpadraoAlterado" puts c1.banco # novamente a variavel 1
Author
Highlight as C C++ CSS Clojure Delphi ERb Groovy (beta) HAML HTML JSON Java JavaScript PHP Plain text Python Ruby SQL XML YAML diff code