`
rebecca
  • 浏览: 314954 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

观察者模式图文

阅读更多

这是刚刚画的观察者模式设计图如下,设计模式具体内容分析如下。


 

(一定义)


观察者模式:是一种对象之间的一对多的依赖。当一个对象状态改变时,它的所有依赖者都会收到通知并自动更新。


(二理解)


这种观察模式在理解上相当于报社与订阅者之间的关系。


1报社的业务就是出版报纸的。


2不论是个人还是单位当像该报社订阅报纸时,只要他们有新的报纸出版,就会给订阅者送来。


3当你不想再看报纸时,可以取消订阅,他们就不会再送新报纸来了。


4只要报社还在运营,就会有单位或个人向他们订阅报纸或取消订阅报纸。



               上面的出版者相当于“主题Subuject”,订阅者相当于“Observer”。主题对象管理某些数据,当主题内的数据改变时就会通知观察者,观察者(已经订阅的/

 

注册了的)就会收到更新。


(三设计原则)


1前提规划,在此模型中,会改变的是主题的状态,以及观察者的数目和类型。用这个模式,你可以改变依赖于主题状态的对象,却不必改变主题。


2主题与观察者都使用接口。观察者利用主题的接口向主题注册,而主题利用观察者接口通知观察者。这样实现了两者之间的松耦合,使他们可以互相交互,但却彼此不


太清楚细节,从而建立有弹性的OO系统,应对变化,使对象之间的互相依赖降到最低。


3观察者模式利用“组合”将许多观察者组合进主题中。对象之间的这种关系不是通过继承产生的,而是在运行时利用组合的方式而产生的。


以上三点总结如下:找出程序中会变化的方面,然后将其和固定不变的方面相分离;针对接口编程,不针对实现编程;多用组合,少用继承。



(四java API有内置的Observer模式)


java.util包内包含最基本的Observer接口与Observable类,如果使用该内置的支持,就只需要写一个类去扩展(继承)Observable,并告诉它何时该通知观察者,


一切就完成了,剩下的API会帮你做。你可以根据需要编写具体的观察者的类,在这个类中定义update()方法,去实现Observer接口。

 

  • 大小: 66.4 KB
8
0
分享到:
评论
24 楼 dodomail 2008-12-16  
最近做SOCKET网络游戏,要采用这种模式,美女你写的真不错.
23 楼 jy1245626 2008-11-26  
2不论是个人还是单位当像该报社订阅报纸时,只要他们有新的报纸出版,就会给订阅者送来
tanleihaoren 写道

我觉得姐姐不仅人长的漂亮,而且画也画的特别的漂亮,你看那,严谨的线条,虚线和实线的搭配,柔和的黄色和白色的交相辉映,处处体现了一种后现代小布尔乔亚的画风,非常的出彩!祝愿姐姐在艺术的道路上越走越远,越飞越高!(*^__^*) 嘻嘻……

22 楼 weiruan85 2008-11-21  
引用
你画的图挺好,但是我一看图就晕,很不错

同意
21 楼 tanleihaoren 2008-11-17  
我觉得姐姐不仅人长的漂亮,而且画也画的特别的漂亮,你看那,严谨的线条,虚线和实线的搭配,柔和的黄色和白色的交相辉映,处处体现了一种后现代小布尔乔亚的画风,非常的出彩!祝愿姐姐在艺术的道路上越走越远,越飞越高!(*^__^*) 嘻嘻……
20 楼 jaybaijie 2008-11-17  
再详细一点就好了,例如具体的小代码啊,嘿嘿,
19 楼 rebecca 2008-11-17  
aone 写道

observer

谢谢^^
18 楼 zhuyx808 2008-11-17  
引用
我声明 我是来看美女的
我也声明 我是看到头像才来的
17 楼 aone 2008-11-17  
observer
16 楼 fengyuyangyi 2008-11-17  
我声明 我是来看美女的
15 楼 rebecca 2008-11-17  
night_lone 写道

请问 用什么工具画的图?

NetBeans^^
14 楼 rebecca 2008-11-17  
eason132 写道

Head First上面的吧。美女!!

恩,正在学习^^
13 楼 狂放不羁 2008-11-17  
呵呵,姐姐画的是head first design pattern上的吧呵呵,画的满好的哈。
12 楼 troyconder 2008-11-17  
呵呵 我就想看看设计模式 没想看美女 表怪。
11 楼 javadonkey 2008-11-17  
不是看文章,都是看美女来了这是!
10 楼 ddd0401 2008-11-16  
支持一个
9 楼 tanleihaoren 2008-11-16  
朋友推荐我来看美女头像!我就来了!
8 楼 allen_java 2008-11-16  
Head First Pattern!不過比我厉害 ,我总是没有毅力把她自己在重新做一边,只是看!哎!惭愧!
7 楼 eason132 2008-11-15  
Head First上面的吧。美女!!
6 楼 night_lone 2008-11-15  
请问 用什么工具画的图?
5 楼 norwind 2008-11-15  
小弟最近也在看设计模式,顶一个

相关推荐

    25种java模式图文代码参考手册.pdf

    17. 观察者模式(Observer):定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 18. 原型模式(Prototype):(此处重复,描述同10) 19. 代理模式...

    23种 设计模式

    - 观察者模式:定义对象间的一对多依赖关系,当一个对象的状态改变时,所有依赖于它的对象都会得到通知并自动更新。 - 状态模式:允许对象在其内部状态改变时改变其行为,看起来像是改变了它的类。 - 策略模式:...

    设计模式笔记

    2. **观察者模式**:观察者模式也是一种对象行为型模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式广泛应用于事件驱动编程中。 - **...

    图文包装用户操作规范

    - 检查S盘指向的实际路径,并确保共享权限设置为“共有者”。 - 删除S盘指向的实际路径所在服务器的系统开机登录密码。 - 在“网络和共享中心”中启用“网络发现”、“文件共享”和“公用文件夹共享”。 - **...

    从零开始学IOS开发(图文)

    在iOS开发领域,初学者通常会从学习Swift编程语言开始,这是苹果为iOS、iPadOS、macOS、watchOS和tvOS平台设计的编程语言。Swift语法简洁明了,易于理解,同时提供了强大的功能。通过阅读"从零开始学iOS开发(图文)...

    Head First 设计模式

    3. **观察者模式**:定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这是事件驱动编程的基础。 4. **装饰器模式**:动态地给一个对象添加一些额外的职责,...

    labview图文教程

    本图文教程是针对LabVIEW初学者的全面指南,包含13个章节,旨在帮助用户从零开始掌握这一强大的数据采集和控制工具。 1. **什么是LabVIEW** LabVIEW是一种基于图标和连线的编程语言,以其独特的“数据流”编程模式...

    22种C++设计模式教学材料

    13. 观察者模式(Observer):定义对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 14. 状态模式(State):允许一个对象在其内部状态改变时改变它的行为...

    主板维修实例图文教程

    对于初学者,理解这些元器件的工作原理和常见故障模式是基础。 其次,主板故障的诊断也是一个复杂的过程。教程可能会介绍如何通过观察主板上的LED指示灯、听声音、使用诊断卡等方法来初步判断问题所在。此外,还会...

    [图文]java程序设计第11章-.doc

    8. **设计模式**:如果面向高级话题,第11章可能涉及到软件设计模式,如单例模式、工厂模式、观察者模式等,这些都是Java开发者应该掌握的核心概念。 以上内容仅是基于常见Java教程结构的猜测,实际文档的内容可能...

    HeadFirstDesignPattern 图书配套源码

    - 观察者模式定义了对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。C++中可以使用STL中的`signal/slot`或自定义事件系统;C#的`System.ComponentModel....

    图文转换之流程图培训课件.ppt

    在训练和实践中,可以参考2006年广东卷的科学知识增长模式图,理解如何从观察、归纳、验证、证实到演绎的过程,形成科学理论。通过这种方式,可以锻炼对信息的提炼和重组能力,提高图文转换的准确性。 总的来说,...

    图文转换之流程图(2017用).pptx

    以2006年广东卷的科学知识增长模式为例,该模式显示了从观察经验事实到归纳科学定律,再到证实和演绎的过程。正确的表述应包含所有环节,并保持语言的通顺和准确。 练习题如2015年新课标卷I的瑶族村考察,需将考察...

    zookeeper概述图文详解

    从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,ZooKeeper就将负责通知已经在ZooKeeper上注册的那些...

    8051Proteus仿真c源码160128LCD图文演示

    提供图文演示对于学习者来说是非常有帮助的,它可以让读者更加直观地理解整个项目的实施过程。例如,通过图文并茂的方式展示如何在Proteus软件中搭建电路、编写C语言代码、配置参数等步骤,能够帮助初学者快速掌握...

    游戏找CALL和基址图文教程+源码

    这个教程结合了图文和源码,为初学者提供了一个直观的学习路径。以下是对这些概念的详细解释: 一、找CALL 在编程中,CALL指令用于调用函数或子程序。在游戏内存中找CALL,通常是为了识别和理解游戏的内部逻辑,...

    级学员心理咨询的理论与实践图文.pptx

    由于提供的信息有限,无法直接提供36页详细内容的概括,但我可以依据“级学员心理咨询的理论与实践图文”这一主题,给出一个关于心理咨询理论与实践的通用概述。 心理咨询是帮助个体解决心理困扰、提高生活质量的...

    单片机C语言Proteus仿真实例160128LCD图文演示

    通过观察LCD显示屏上是否正确显示了“Hello World!”来验证程序逻辑是否正确。 #### 六、总结 本文介绍了如何使用单片机C语言结合Proteus仿真软件实现160128 LCD图文演示。从硬件准备、软件配置到程序设计思路和...

    designpattern:Head First 设计模式练习

    再者,观察者模式(Observer)定义了一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在Java中,`java.util.Observable`和`java.util.Observer`接口可以用来实现这个...

Global site tag (gtag.js) - Google Analytics