module Subject
def initialize
@observers = []
end
def add_observer ob
@observers << ob
end
def delete_observer ob
@observers.delete ob
end
def notify_observers
@observers.each do |ob|
ob.update self
end
end
end
class Employee
include Subject
attr_reader :name, :title
attr_reader :salary
def initialize name, title, salary
super()
@name = name
@title = title
@salary = salary
end
def salary=new_salary
@salary = new_salary
notify_observers
end
end
class Taxman
def update obj
puts "#{obj.name} now has a salary of #{obj.salary}"
end
end
jack = Employee.new('jack', 'prgramer', 3000)
jack.add_observer(Taxman.new)
jack.salary = 3000
require 'observer' class Employee include Observable attr_reader :name, :title, :salary def initialize name, title, salary @name = name @title = title @salary = salary end def salary=(new_salary) @salary = new_salary changed notify_observers(self) end # salary= end # Employee
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有