实例分析Ruby设计格局开辟中对观察者情势的贯彻

观看者情势在音信的生产者和消费者之间确立了clean
interface,那样就使得新闻的生产者和顾客之间的耦合是抽象的。被观察者能够不认知别的三个的阅览者,它只略知12她们都完结了三个齐声的接口。由于阅览者和被观看者未有紧凑的耦合在协同,所以他们能够属于分化的抽象档案的次序。

实例深入分析Ruby设计情势开荒中对观望者情势的落到实处,ruby设计格局

一般的话,观望者情势的定义应该是那般的:building a clean interface
between the source of news that some object has changed and the
consumers of that news。

观看者格局在音信的劳动者和买主之间确立了clean
interface,那样就使得消息的劳动者和顾客之间的耦合是架空的。被观望者能够不认得其余1个的观望者,它只掌握他们都完毕了叁个同步的接口。由于旁观者和被观看者未有紧凑的耦合在一道,所以他们能够属于不一样的抽象档期的顺序。

观望者方式支持广播通讯,被阅览者会向种种注册了的阅览者发送广播的change信息。这种广播方式就有望产生阅览者被循环公告,消耗极多的能源。

广义的观望者方式中应该定义二个剧中人物。

Subject:产生消息的类便是subject。在上一篇的例子中就是Tester类;

Observer:
对subject发生的新闻感兴趣的类。在上篇的例证中正是税务分公司,社会养老保险职业管理局类;

如果以男女关系来类比subject和observer,subject就应有是observer那些男孩子暗恋的女孩。男孩对女孩痴心一片,但是女孩总是若近若离,遮遮掩掩。于是男孩对女孩说:小编会等您的,若是你有了归宿请布告自身,否则小编向来等下去。在此处男孩便是女孩的observer,他对女孩发出的音信——是不是有了归宿感兴趣。于是当有了归宿这几个音讯爆发时,女孩会公告男孩,2个旧情杯具诞生,可是全体的observer方式会完善兑现。

作为subject,上面包车型大巴那几个接口是其相应实现的:

  • 增加observer
  • 移除observer
  • 通知observer

而作为observer,其急需实现接收布告时候的具体表现。

示例: 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

诚如的话,观望者形式的定义应该是那样的:building a clean interface
between the source of news that some object has changed and the
consumers of that news。

您大概感兴趣的篇章:

  • 设计形式中的阅览者格局在Ruby编制程序中的运用实例深入分析
  • 深入剖判Ruby设计形式编制程序中对命令格局的相关应用
  • Ruby设计格局编制程序中对外观情势的使用实例解析
  • 详解组合方式的布局及其在Ruby设计形式编制程序中的运用
  • 设计形式中的模板方法形式在Ruby中的应用实例两则
  • 实例深入分析Ruby设计情势编制程序中Strategy攻略格局的应用
  • 实例解说Ruby使用设计格局中的装饰器形式的艺术
  • Ruby设计方式编制程序中央银行使Builder建造者方式的实例
  • 详解Ruby设计方式编制程序中对单例格局的使用
  • Ruby设计形式编制程序之适配器情势实战计策
  • Ruby使用设计情势中的代理方式与装修方式的代码实例
  • Ruby中选拔设计情势中的轻巧工厂情势和工厂方法方式
  • 浅析proxy代理情势在Ruby设计情势开采中的运用

http://www.bkjia.com/ruby/1119420.htmlwww.bkjia.comtruehttp://www.bkjia.com/ruby/1119420.htmlTechArticle实例解析Ruby设计模式开发中对观察者模式的实现,ruby设计模式
一般的话,观望者格局的定义应该是如此的:building a clean interface
between t…

# -*- 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") 
 

你大概感兴趣的篇章:

观察者情势援救广播通讯,被阅览者会向各类注册了的阅览者发送广播的change信息。这种广播格局就有希望形成阅览者被循环文告,消耗极多的能源。

而作为observer,其供给贯彻接收文告时候的具身体表面现。

AObserver 被通知了 Test
BObserver 被通知了 Test

出口结果:

示例: ruby中自带达成观看者形式的类observer。能够采取它来兑现观望者情势。

用作subject,上边的这个接口是其应有完成的:

广义的观看者情势中应该定义叁个剧中人物。

Observer:
对subject发生的新闻感兴趣的类。在上篇的例子中就是税务总部,社会养老保险事业管理局类;

纵然以男女关系来类比subject和observer,subject就应有是observer这么些男孩子暗恋的女孩。男孩对女孩痴心一片,不过女孩总是若近若离,遮遮掩掩。于是男孩对女孩说:小编会等您的,就算您有了归宿请布告本身,不然自个儿直接等下去。在此间男孩正是女孩的observer,他对女孩发生的音信——是不是有了归宿感兴趣。于是当有了归宿那个音信产生时,女孩会通报男孩,二个爱意杯具诞生,不过总体的observer情势会全盘兑现。

  • 增加observer
  • 移除observer
  • 通知observer

Subject:发生音讯的类就是subject。在上1篇的例子中便是Tester类;

代码例子:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图