Modularização
Em Ruby possuimos duas formas de Encapsulamento: as classes e os módulos:
1) Classes:
A classe é como uma “modelo” a partir da qual objetos individuais são
construídos. Esta é uma classe bem simples:
class MyClass
end
E assim é como eu criaria um objeto utilizável a partir dela:
ob = MyClass.new
2)Módulos:
Igualmente a uma classe pode conter constantes, métodos e classes.
Podemos utilizar módulos de duas formas: Como empacotador e como mixin.
2.1) Empacotador : Por exemplo criar bibliotecas para reuso. Colocamos os métodos, variaveis e classes em um módulo, e ao importarmos esse módulo nosso programa irá ter acesso a todas essas variáveis, metodos e classes. Para importar um módulo utilizamos o comando ‘require’.
2.2) Mixin: É quando incluimos um módulo em uma classes -também chamado de misturar o módulo. Quando se inclui modulos em uma classe, quaisquer objetos criados a partir da classe poderão usar os métodos de instância do módulo incluso como se tivessem sido definidos na própria classe.
module MyModule
GOODMOOD = “happy”
BADMOOD = “grumpy”
def greet
return “I’m #{GOODMOOD}. How are you?”
end
def nogreet
return “I’m #{BADMOOD}. How are you?”
end
end
class MyClass
include MyModule
def sayHi
puts( greet )
end
def sayHiAgain
puts(nogreet )
end
end
ob = MyClass.new
ob.sayHi
ob.sayHiAgain
puts(ob.greet)
Formas de acesso aos métodos:
Em Ruby, você pode deixar três tipos de acesso aos métodos: métodos públicos, privados e protegidos. Os métodos públicos podem ser acessados por qualquer classe e por qualquer objeto (instância). Os métodos privados podem ser acessados somente por objetos de mesmo tipo (mesma classe).
Métodos protegidos são métodos que podem ser acessados por qualquer objeto dentro da mesma estrutura hierárquica da classe.
Ex:
class Pessoa
attr :nome, :nascimento, :cpf
def metodoPublico
end
protected
def metodoProtegido
end
def outroMetodoProtegido
end
private
def metodoPrivado
end
def outroMetodoPrivado
end
public
def deNovoMetodoPublico
end
end
Deixe um comentário