码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式--观察者模式

时间:2016-04-18 13:24:23      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

观察者模式(订阅/发布模式)

场景:有一个目标对象,其状态会不定时的变化,会影响到客户端,每个客户端对这个改变做出响应。  

PULL or PUSH ?

观察者模式由pull变为push

Hollywood原则:不要访问我,当我状态改变的时候我来告诉你。例如:websocket邮件客户端可以刷新自己。

  

 

  技术分享

     上图来自wiki百科,https://en.wikipedia.org/wiki/Observer_pattern

怎样使客户端对象不会影响到subject

client实现一个接口,subject只面向这个接口

 

事件监听器

UI组件,并发时有问题,

 

Mediater仲裁者模式(调节器)

使多个类之间的紧耦合关系弱化,交互协议如果有重叠的话,尽量复用。

 

class A {

public void interact()//Mediator:interact()

}

 class Mediator{

public void interact  //定义交互规则

 

缺点:mediator会变得复杂

 

 

 

}

 

 

 

 

附加UML  

技术分享

 

设计模式--观察者模式

标签:

原文地址:http://www.cnblogs.com/gaocan/p/5403865.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!