`
liuxinglanyue
  • 浏览: 565428 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java设计模式之观察者模式

阅读更多

OBSERVER (Object Behavioral) 
Purpose 
Lets one or more objects be notified of state changes in other 
objects within the system. 
Use When 
1 State changes in one or more objects should trigger behavior 
  in other objects 
2 Broadcasting capabilities are required. 
3 An understanding exists that objects will be blind to the 
  expense of notification. 
Example 
This pattern can be found in almost every GUI environment. 
When buttons, text, and other fields are placed in applications 
the application typically registers as a listener for those controls. 
When a user triggers an event, such as clicking a button, the 
control iterates through its registered observers and sends a 
notification to each. 

Java代码 
  1. package javaPattern.observer;  
  2.   
  3. import java.util.ArrayList;  
  4.   
  5. public interface Observer {  
  6.     public void update();  
  7. }  
  8. class ConcreteObserver implements Observer{  
  9.   
  10.     @Override  
  11.     public void update() {  
  12.         System.out.println("update...");  
  13.           
  14.     }  
  15.       
  16. }  
  17. interface Subject{  
  18.     public void attach(Observer o);  
  19.     public void detach(Observer o);  
  20.     public void notifyObserver();  
  21. }  
  22. class ConreteSubject implements Subject{  
  23.     private ArrayList<Observer> observers = new ArrayList<Observer>();  
  24.     @Override  
  25.     public void attach(Observer o) {  
  26.         observers.add(o);  
  27.           
  28.     }  
  29.   
  30.     @Override  
  31.     public void detach(Observer o) {  
  32.         observers.remove(o);  
  33.           
  34.     }  
  35.   
  36.     @Override  
  37.     public void notifyObserver() {  
  38.         for(Observer o : observers){  
  39.             o.update();  
  40.         }  
  41.           
  42.     }  
  43.       
  44. }  
  45. class Client{  
  46.     public static void main(String[] args) {  
  47.         Subject subject = new ConreteSubject();  
  48.         Observer observer1 = new ConcreteObserver();  
  49.         Observer observer2 = new ConcreteObserver();  
  50.         Observer observer3 = new ConcreteObserver();  
  51.         subject.attach(observer1);  
  52.         subject.attach(observer2);  
  53.         subject.attach(observer3);  
  54.         subject.notifyObserver();  
  55.               
  56.     }  
  57. }  

分享到:
评论

相关推荐

    java设计模式之观察者模式

    **Java设计模式之观察者模式详解** 在软件工程中,设计模式是一种被广泛接受的解决常见问题的方法。观察者模式(Observer Pattern)是行为设计模式的一种,它定义了对象之间的一对多依赖关系,当一个对象的状态发生...

    JAVA设计模式之观察者模式.docx

    观察者模式的定义: 在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。 大白话: 其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没...

    Java设计模式之观察者模式_动力节点Java学院整理

    Java设计模式之观察者模式 定义:观察者模式是一种行为类模式,定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。 结构: * 被观察者(Subject):从...

    设计模式之观察者模式Java实现

    观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...

    java23种设计模式之观察者模式

    **观察者模式(Observer Pattern)**是软件设计模式中的一种行为模式,它在Java中有着广泛的应用。这个模式的核心思想是“一对多”的依赖关系,即一个主题对象(Subject)可以被多个观察者(Observer)关注,当主题...

    java 设计模式 观察者模式 简单实例 包括测试test类

    观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现事件驱动或者发布...

    Java 设计模式-观察者模式(Observer)

    结合微信公众号讲解观察者模式,生动形象,关键是上手快啊

    设计模式--观察者模式java例子

    观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...

    java观察者模式观察者模式

    观察者模式是设计模式中的一种行为模式,它在Java编程中有着广泛的应用。该模式的主要目的是定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式也被...

    Java设计模式——观察者模式

    首先,我们来看"Java设计模式——观察者模式的两种情况": 1. **主动通知**: 在这种情况下,被观察者对象在自身状态发生变化时,会主动调用`Observable`接口提供的`notifyObservers()`方法,将变化通知给所有注册的...

    java设计模式系列之观察者模式代码

    在Java编程领域,设计模式是一种被广泛采用的最佳实践,它为解决常见的软件设计问题提供...在Java中,`java.util.Observable`和`java.util.Observer`是内置的观察者模式实现,可以方便地用于快速构建观察者模式的系统。

    [行为模式]head first 设计模式之观察者模式(observer)

    观察者模式(Observer Pattern)是设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式在软件开发中广泛应用于事件驱动...

    《java设计模式》课后习题模拟试题解答——刘伟.zip

    Java设计模式是软件工程中的一种最佳实践,它总结了在特定场景下解决常见问题的经验,为程序员提供了可重用的解决方案。本资料“《java设计模式》课后习题模拟试题解答——刘伟.zip”主要涵盖了Java设计模式的学习与...

    Java常用的3中设计模式代码即工厂模式、单例模式、观察者模式demo

    在Java中,`java.util.Observable`和`java.util.Observer`接口提供了观察者模式的实现。例如,当我们有一个`WeatherStation`类(被观察者)和多个`WeatherDisplay`类(观察者)时,`WeatherStation`的气象数据变化会...

    JAVA设计模式(java设计)

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

Global site tag (gtag.js) - Google Analytics