设计模式 观察者模式实现例子(ruby)
ruby中自带实现观察者模式的类observer。可以利用它来实现观察者模式。
代码例子:
# -*- coding: GB2312 -*-
require 'observer'
# 观察者模式(ruby)的使用例子
# 被观察者P
class PObservable
include Observable
end
# 观察者A
class AObserver
# update方法名是必须的要有的
def update(arg)
puts "AObserver 被通知了 " + arg
end
end
# 观察者B
class BObserver
# update方法名是必须的要有的
def update(arg)
puts "BObserver 被通知了 " + arg
end
end
# 观察者初始化
observer_a = AObserver.new
observer_b = BObserver.new
# 被观察者初始化
obj = PObservable.new
# 添加监视对象
obj.add_observer(observer_a)
obj.add_observer(observer_b)
# 被观察者改变了 ->这段代码 必须有 不然无法通知到观察者
obj.changed
# 通知观察者
obj.notify_observers("Test")
输出结果:
AObserver 被通知了 Test
BObserver 被通知了 Test
相关文档:
新年刚开始,已经有一些生猛的朋友要开始新的职场生涯了,
不知道会不会遇到这样的问题: 想找一份Ruby on rails的工作,我应该知道哪些知识
?
还好,我并不是想指点你什么,只是想按我的思维方式展开,让你能"闻"到点东西即成.
古云:知己知彼,百战不殆;不知彼而知己,一胜一负; ......
松本行宏如约于圣诞节发布了Ruby 1.9。根据Ruby的惯例,小数点后面第一位如果是单数,那么就表明这是一个实验版本,不推荐用于产品环境。所谓“产品环境”,对于目前的Ruby来说,基本上就是Ruby on Rails。从目前RoR社群的反映来看,确实有人正在尝试用Ruby 1.9配合RoR,但是尚属 ......
因为一次偶然的机会接触了Ruby语言。然后下载了Ruby Shoes工具。
发现Ruby还是蛮有趣的。
花了一段时间熟悉了它的语法。
下面来试试它的鼠标功能。
Shoes.app do
#图片初始化
@img = image "http://www.google.cn/intl/zh-CN/images/logo_cn.gif"
#图片关于鼠标的调用
& ......
在使用中ruby的过程中难免会遇到提高性能的问题,由此便想起了ruby线程。但是我在使用中却发现ruby的线程却不能提高性能。我写了以下代码,做了些简单测试。
代码
# -*- coding: GB2312 -*-
require 'date'
# 使用线程,线程的处理代码里没有sleep
def have_thread_no_sleep
p Time.now
thread1 = Thread.new do
......