社区
Java
帖子详情
读了阎宏博士的观察者模式...
zhangyunpeng
2004-10-21 09:20:03
这个模式和我现在做的这个业务很吻合。
业务是这样的:用户添写自己的提醒信息,包括提醒时间,提醒内容。当系统时间和用户的提醒时间相等的时候,便执行给该用户发送email的操作。
系统时间是被观察者,而用户设置的提醒时间是观察者,系统时间如果发生变化的时间,便会通知每一个观察者。
不知道我这样理解对不对,请大家指教.
...全文
507
12
打赏
收藏
读了阎宏博士的观察者模式...
这个模式和我现在做的这个业务很吻合。 业务是这样的:用户添写自己的提醒信息,包括提醒时间,提醒内容。当系统时间和用户的提醒时间相等的时候,便执行给该用户发送email的操作。 系统时间是被观察者,而用户设置的提醒时间是观察者,系统时间如果发生变化的时间,便会通知每一个观察者。 不知道我这样理解对不对,请大家指教.
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
12 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
打赏红包
xlyyc
2005-03-21
打赏
举报
回复
mark
catblue
2004-12-01
打赏
举报
回复
学习
jeffyan77
2004-11-01
打赏
举报
回复
streamer技术本身是有专利和版权的,不能讲得太多。不过TCP是connection oriented,TCP Socket以stream通讯为基础,能够发送stream的服务器,就是streamer,这是大家都能想得到的。
quanquan626
2004-11-01
打赏
举报
回复
学习
jeffsonxl
2004-11-01
打赏
举报
回复
"解决这个问题需要采用socket编程,使用一种通常称作streamer的技术,这基本上就是华尔街编程的顶级层次了", 阉博士,能不能讲的再具体些,谢谢.
cold_blooded
2004-10-31
打赏
举报
回复
楼上说的有理,
表示钦佩,
不过对于楼主的应用,
愚见认为没问题.
jeffyan77
2004-10-29
打赏
举报
回复
扫描的方法在一些简单情况下是可以的,但是不值得推荐。在很多情况下,扫描行不通。
扫描是pull架构,也就是使用端不断要求服务端提供某状态,以便在服务端状态发生某种变化的时候采取某行动。这会造成大量无用的请求和回复。
观察者模式可以用来实现push架构,也就是服务端在内部状态满足某一条件的时候,主动通知使用端,以便使用端采取某行动。只有在满足条件的时候,服务端才发通知,使用端才有行动。这在最大程度上节省了系统资源,提高了系统的效率。
在观察者和被观察者同处于一个JVM的情况下,观察者模式本身就足以提供push架构。
在两者处于不同的JVM中的时候,观察者模式本身不能解决push架构的功能问题。一个最为常见的例子,就是股票价格的报价系统。假设你有一个Java Applet放到网页上,不断显示某些股票的价格。如果由使用端不断向服务器请求这些价格,不论这些价格有没有变化,那么系统根本无法承受大量客户。经过我们的测试估计,在美国股市情况下,这种盲目的请求和报价的99%是无用的。换言之,为了支持譬如10万个用户,你需要大量的系统资源,特别是硬件资源,但是99%都被浪费掉了,就是因为软件设计的缺陷。
如果能够采取push架构,如果原先支持10万人需要200台服务器,现在只需要两台服务器。在从两台加到20台,就可以轻而易举地支持100万个用户。
当然,观察着模式本身并不能够解决这个报价系统中所有的问题,采取具有合适功能的技术,辅助以观察者模式才能真正实现push架构。HTTP协议不能有效支持push,一个http服务器不能在自己认为合适的时候,主动向使用端发出信息。JDBC也不能从数据库服务器主动送出数据,J2EE技术本身也没有提供相关的功能。这当然不是一个设计模式能够解决的。解决这个问题需要采用socket编程,使用一种通常称作streamer的技术,这基本上就是华尔街编程的顶级层次了。
treeroot
2004-10-29
打赏
举报
回复
可以指定的时间间隔扫描一次
zwp315
2004-10-28
打赏
举报
回复
顶~~
wwwer1
2004-10-21
打赏
举报
回复
是观察者一直在关注的周围环境的变化(当然不一定是精确到每一秒)
这就需要监听机制。建立一个listener类,要保证这个类在系统运行期间不被垃圾收集器收集。
然后,过一定的单位时间就检查一次业务逻辑。这个业务逻辑和单位时间是你来设定的。
zx209
2004-10-21
打赏
举报
回复
想学模式了
tom2005
2004-10-21
打赏
举报
回复
学习
相关推荐
观察者模式
《JAVA与模式》之
观察者模式
在
阎宏
博士
的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的:
观察者模式
是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。
观察者模式
定...
Java设计模式--
观察者模式
在
阎宏
博士
的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的:
观察者模式
是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。
《JAVA与模式》之
观察者模式
在
阎宏
博士
的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的:
观察者模式
是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。
java
观察者模式
转载自《java与模式》之
观察者模式
《JAVA与模式》之
观察者模式
在
阎宏
博士
的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的:
观察者模式
是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。
《JAVA与模式》之
观察者模式
(转载)
《JAVA与模式》之
观察者模式
(转载) 原文链接:http://www.cnblogs.com/java-my-life/archive/2012/05/16/2502279.html 在
阎宏
博士
的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的:
观察者模式
是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/V...
发帖
Java
Java
Java相关技术讨论
复制链接
扫一扫
4.9w+
社区成员
8.5w+
社区内容
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2004-10-21 09:20
社区公告
暂无公告