登陆注册
15296300000062

第62章 3 组成部分

小A:“那它的组成部分哩?是不是就是有观察者和被观察者的就是属于观察者模式?”

大B:“不是。1、抽象目标角色:目标角色知道它的观察者,可以有任意多个观察者观察同一个目标。并且提供注册和删除观察者对象的接口。目标角色往往由抽象类或者接口来实现。2、抽象观察者角色:为那些在目标发生改变时需要获得通知的对象定义一个更新接口。抽象观察者角色主要由抽象类或者接口来实现。3、具体目标角色:将有关状态存入各个具体观察者角色对象。当它的状态发生改变时,向它的各个观察者发出通知。4、具体观察者角色:存储有关状态,这些状态应与目标的状态保持一致。实现观察者角色的更新接口以使自身状态与目标的状态保持一致。在这个角色内也可以维护一个指向具体目标角色对象的引用。”

大B:“用一个实际的例子来说明:日常生活中说起观察者,最常见的例子可能就是天气预报,在这里我们的观察对象是地球,而我们是通过发射气象卫星这个观察者来检测地球气象变化的。”

所以这个例子中涉及三个对象:

地球(Earth):被观察对象

气象卫星(Satellite):观察者

气象局(WeatherService):客户端调用

被观察对象:地球(Earth)

import java。util。Observable;

/***// *被观察对象:地球

*

*@version 1.0

*/

public class Earth extends Observable{

private String weather=“晴朗”;

/***// *@return Returns the weather。

*/

public String getWeather(){

return weather;

}

/***// *@param weather

*The weather to set。

*/

public void setWeather(String weather){

this。weather=weather;

//设置变化点

setChanged();

notifyObservers(weather);

}

}

[注意]在需检测的对象前需要设置变化点setChanged()和通知观察者notifyObservers(),这两个函数是由Observable类实现的,封装了观察者模式实现的细节。

观察者:气象卫星(Satellite)

import java。util。Observable;

import java。util。Observer;

/***// *观察对象:气象卫星

*

*@version 1.0

*/

public class Satellite implements Observer{

private String weather;

public void update(Observable obj,Object arg){

weather=(String)arg;

//捕获天气变化情况,反馈给检测者

System。out。println(近期天气变化: weather);

}

}

客户端调用:气象局(WeatherService)

/***// *客户端调用:天气预报

*

*@version 1.0

*/

public class WeatherService{

/***// *@param args

*/

public static void main(String[]args){

Earth earth=new Earth();

Satellite satellite=new Satellite();

//发射气象卫星

earth。addObserver(satellite);

System。out。println(天气预报:);

System。out。println(“――”);

earth。setWeather(“台风‘珍珠’逼近”);

earth。setWeather(“大到暴雨”);

earth。setWeather(“天气炎热”);

}

}

[运行结果]

天气预报:

――

近期天气变化:台风‘珍珠’逼近

近期天气变化:大到暴雨

近期天气变化:天气炎热

同类推荐
  • 信息安全

    信息安全

    我们不得不看到,全球信息化发展,使信息安全成为维护国家安全的重要屏障,信息安全问题正在为国与国之间带来新的制约关系。当然,这只是我们强调信息安全极端重要性的一个原因。事实上,信息安全已经上升为国家安全的重要组成部分,这是信息时代国家安全的明显特征,也是很多国家的共识。但与其他国家安全元素不同,如果脱离信息化发展的环境,“信息安全”只是一个抽象的目标,它要通过对国家的政治、经济、文化等方面的影响体现其对国家安全的意义,并以保障信息化发展为目标取向。因此,我们说信息安全是信息时代国家安全的基石。
  • 办公设备使用与维护

    办公设备使用与维护

    信息技术的发展正前所未有地改变着人类生活的每一个层面,以信息化、全球化和高科技为特征的新经济浪潮滚滚而来,机遇与挑战并存。办公自动化是信息化时代最重要的标志之一,办公要实现自动化,当然离不开办公设备。
  • 纵横于天地之间——互联网络技术

    纵横于天地之间——互联网络技术

    本书告诉你:不管你是谁,只要生活在当前的时代,你一定知道电话,知道电脑,知道上网……知道许许多多关于电子、关于计算机、关于网络的话题,这就是网络时代。网络的话题可多了:它是怎么来的?什么是“蜘蛛网”?网络的过去和现在,上网的方法,如何使用网络,互联网的安全,网络有“陷阱”吗?网络有“瘾”吗?网络文化和未来又是怎样的?到书中去找答案吧!
  • 黑客就在你身边

    黑客就在你身边

    互联网络正在改变着我们的生活,每个人都处在互联网的天罗地网之中。本书以轻松的笔调,向人们介绍了有关“黑客”的知识。当你读完这本书后,你会发觉“黑客”一点都不神秘,他们渴望全社会对他们有一个公正的评价。
  • 办公软件高级应用

    办公软件高级应用

    日新月异的信息技术使计算机的应用渗透到各行各业,融入到我们的工作、学习和生活中,特别是在办公领域中运用计算机技术,可以实现办公自动化,成倍地提高工作效率。在众多的办公软件中,微软公司的Office系列软件是办公自动化软件中的佼佼者,其强大的功能深受全世界广大用户的青睐。根据当前业界的需求以及办公软件的实际应用范围,本书针对Office2003系列产品,深入讲解其高级应用知识和操作技能。
热门推荐
  • 邪魅公主的复仇爱恋

    邪魅公主的复仇爱恋

    她们,为了复仇,进入贵族校园,却装作平民,暗地复仇,他们,开始调查他们,复仇女神,与名门校草又能擦出怎样的火花?
  • 龙族之

    龙族之

    奥丁,这个铭记于心的名字。当我也同“他”一样达到了A级巅峰时,你会不会也来找我。
  • 堕仙刀

    堕仙刀

    一把短刀无锋无刃,竟被年幼的他当成手中玩物叫做杀猪刀。从小门小派到大门大宗,离奇的遭遇,曲折的变故,前方道路又该何去何从……无锋刃,爱恨情仇浑浑浊浊。九弧显,是非恩怨清清白白。敛无数亡魂,尽万千心酸。我中自有我,正邪从心生。
  • 每天都是精彩:英语诵读美文240篇(英汉对照)

    每天都是精彩:英语诵读美文240篇(英汉对照)

    《每天都是精彩:英语诵读美文240篇(英汉对照)》按照自然时间排序,每一月份收录的小品文风格各异、体裁不同,但却相辅相成、相得益彰,便于你把脉时光的步伐,体味四季的轮回。每篇小品文后都列有生词注音释义,便于你诵读记忆,扩大词汇量。
  • 太宇武帝

    太宇武帝

    宇宙的始末,命运的流转,命运,征途,一个赌局,惊天赌局,看申修养以武论道,以拳逆天,如何修长而道远
  • 快穿之男神大人慢点来

    快穿之男神大人慢点来

    作为一名学生党,周雪佳表示很无奈,自己只不过熬夜道12点,怎么就疲劳过度而死,从此走上了攻略男神之路,但为毛攻略地是同一个人呢?霸道的帝辰炎,温柔的帝辰炎,阳光的帝辰炎,腹黑的帝辰炎……周雪佳表示从此节操是路人!甜宠1V1男女主身心干净!
  • 想世纪

    想世纪

    祖尔家族,这是一个沿袭着帝王习俗的家族,因为家族巫毒术而远近闻名。直到因反对战争,而在一次家族叛乱中消失,这支家族对帝国的影响依然无比强大。时间更迭,历史再变,不满于帝国的统治,很多部落揭竿而起,拉开了浩浩荡荡的反叛历程。为了找回这个消失了的家族和那些伴随着家族消失的巫毒术,帝国派出了大量的的骑兵、一支以隐秘着称的毒牙刺客团和一群常年驰骋于天际的佣兵团,闯入了这片浩荡无边的森林。伴随着寻找祖尔家族的的任务,另一个一个能使帝国纵横世界的计划正在悄悄的拉开序幕。【感谢墨者论坛为本书定做封面】
  • 乱世枭雄浮沉皇后

    乱世枭雄浮沉皇后

    幡然转世,降于帝都。霄皇恩赐一朝成为太子妃,帝都女子无不羡慕嫉妒。痴傻如何?废物如何?愚蠢如何?只要成为太子妃,一朝登临九舞凤塔就是帝都皇后!要风得风要雨得风好不畅快!四海之内风云突变!陈年秘史,母亲死亡之真相!引狼入室,举府屠戮之残忍!真情错付,步履维艰之冷漠!芳华妙龄,风华绝代,倾世佳人!世间枭雄无不争相掠夺!世人皆憎:红颜祸水。媚主媚国祸害江山。沐日月翩然一笑道:世间浮沉莫过于此,那我就当个浮沉皇后吧!
  • 永恒的雾森林

    永恒的雾森林

    不就是穿个山洞吗?至于把我带到这个奇怪的地方来吗?什么?你们是天使?河对岸还有恶魔?好吧,不过我不是鸟人。只为了一件发生在三千年前的事,你们就要杀我。就因为是人类,所以无论是做为天使的你们,还是做为恶魔的他们都要致我于死地。你们会如愿的。。。。。。。
  • 蝴蝶风吟

    蝴蝶风吟

    一代宝玉,一代互玉家族。守护、传承,欺诈、争夺。是欲望还是谎言?