Ruby 设计模式观察者模式

ruby 自带一个观察者类observer,我们可以用它实现观察者模式
案例:

require 'observer'

#被观察者  
class Beobservable
    include Observable
end 

#观察者A
class Aobserver
    def update(args)
        puts "a is observer! #{args}"
    end
end

#观察者B
class Bobserver
    def update(args)
        puts "b is observer! #{args}"
    end
end

observer_a = Aobserver.new
observer_b = Bobserver.new


b_servable = Beobservable.new

#添加观察者
b_servable.add_observer(observer_a)
b_servable.add_observer(observer_b)

#被观察者改变时
b_servable.changed

#通知观察者
b_servable.notify_observers("test")

Comments

Copyright © 2017 kaka