sad
Ruby
code posted
created at 24 Aug 19:13
Edit
|
Back
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# instanciamos a classe pedido pedido = Pedido.new # instance_eval permite alterar a estrura # classe apenas para essa instancia em especifico pedido.instance_eval do class << self # transformamos essa instancia em uma classe # capaz de adicionar blocks observadores include ModuloSujeito # o metodo mudar_status é redefinido para # que ele possa notificar seus observadores alias_method :old_mudar_status,:mudar_status def mudar_status(novo_status) old_mudar_status(novo_status) # notificando os observadores notificarObservadores end end end pedido.addObservador do |p| # EmailSender # conectar() # enviar email # desconectar() puts("#Observador Email: Prezado cliente seu pedido esta: #{p.status}") # GerenteEstoque # verificar status # Tratar estoque puts("#ObservadorEstoque: Estoque remanejado") end pedido.mudar_status :Aberto pedido.mudar_status :Confirmado pedido.mudar_status :Reservado pedido.mudar_status :Despachado |
1 KB in 2 ms with coderay