Java设计模式-观察者模式
观察者模式 一、现实生活中的实例   早上起床,推开窗,看到漫天雪花,我们知道天气降温并下着大雪,于是我们穿上棉服打着雨伞出门;在过马路的时候,看到了红灯, 于是我们停下脚步等着绿灯;当穿过马路,走到公交站台看到公交车刚刚走远,于是我们摆手拦下一辆出租车坐上去上班。   从天气变化来选择出门的穿着,从交通灯的颜色变化来选择停留,从公交车远走来重新选择车子,我们总是观察者事物的变化来改变 我们的动作。 二、软件设计   从生活中的启发,我们把通过观察事物的变化来改变另一事物的行为演变成为了一种新的设计模式—观察者模式。 观察者模式的模式动机是建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。   在此,发生改变的对象称为观察目标,而被通知的对象称为观察者。   从实例中思考也可知道,多个观察者可以观察同一个对象,而且这些观察者之间没有相互联系。比如,开车的人、汽车的人、走路的 人都在看交通灯,并且都各自根据交通灯的变化而进行各自的动作。 观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。   观察者模式,是一种对象行为型模式;一个观察对象的变化,其相关依赖的N个观察者都会被通知并发生相应的变化。 三、Java中的观察者模式