`
chenhetong
  • 浏览: 15389 次
  • 性别: Icon_minigender_1
  • 来自: 保定
最近访客 更多访客>>
社区版块
存档分类

observer 的备忘(二)--JDK

阅读更多


被观察者  继承 Observerable 类
在方法中  this.setChanged() ;this.notifyObservers()


观察者    实现 Observer接口

重写update方法来实现对观察者的回应

在被观察者出现多继承的情况时 考虑有adapter的方式实现
   public class cat extends  BaseClass (extends Observerable)

   public class cat extends Observerable{
      private BaseClass bc = new BaseClass() 
}


package com.cht.observer;

import java.util.Observable;
import java.util.Observer;


public class MouseCatMan {
   public static void main (String [] args){
	     Cat c = new Cat();
	     Observer o1 = new Mouse();
	     Observer o2 = new Man();
	     c.addObserver(o1);
	     Mouse m = (Mouse)o1;
	     m.addObserver(o2);
	     //非常关键的一部 调用c中的方法开始触发
	    c.cry();
   }
}
class Cat extends Observable{
	public void cry(){
		System.out.println("the cat cry");
		this.setChanged();
		this.notifyObservers();
	}
}
class Mouse extends Observable implements Observer {

	@Override
	public void update(Observable o, Object arg) {
        System.out.println("the  cat cry ! mouse run!!");
        this.setChanged();
        this.notifyObservers();
	}
}
class Man implements Observer{

	@Override
	public void update(Observable o, Object arg) {
           System.out.println("Scared me!!");		
	}
	
}
分享到:
评论

相关推荐

    JDK中有关23个经典设计模式的示例

    20. 备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。`java.beans.PropertyChangeSupport`类用于存储和恢复对象的属性状态。 21. 状态机模式(State Machine...

    design-pattern:7大设计原则+ 23种设计模式(含UML类图)+设计模式在JDK中的源码分析Java语言

    如策略(Strategy)、模板方法(Template Method)、观察者(Observer)、迭代器(Iterator)、访问者(Visitor)、命令(Command)、责任链(Chain of Responsibility)、解释器(Interpreter)、备忘录(Memento)...

    java 23种设计模式的类图

    23. **观察者模式(Observer)**:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 以上就是23种设计模式的基本概念和应用,它们在实际开发中扮演着至...

    最全 java23种设计模式 Debug模式+内存分析

    - **观察者模式(Observer)**:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 - **命令模式(Command)**:将一个请求封装为一个对象,从而使用户...

    二十三种设计模式JAVA实现源码.zip

    Java中,使用`java.util.Observable`和`java.util.Observer`接口实现。 18. **命令模式**:将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。Java...

    Java基础课程_22课

    - **行为型模式**:策略(Strategy)、模板方法(Template Method)、观察者(Observer)、迭代器(Iterator)、责任链(Chain of Responsibility)、命令(Command)、备忘录(Memento)、解释器(Interpreter)、...

    [中文]Head-First设计模式.pdf

    18. 行为型模式:如命令、解释器、迭代器、备忘录、观察者、状态、策略、模板方法、访问者模式,它们关注的是对象之间的交互和职责分配。 通过深入学习和理解这些设计模式,开发者可以写出更高质量、更具扩展性的...

    java的设计模式 《设计模式-java语言中的应用.pdf》

    在Java中,静态代理和动态代理(JDK Proxy)可以实现这一模式。 9. **桥接模式**:将抽象部分与它的实现部分分离,使它们都可以独立地变化。在Java Swing中,组件和外观的分离就是一个桥接模式的例子。 10. **组合...

    JAVA设计模式

    以上只是Java设计模式中的一部分,还包括组合模式、享元模式、代理模式、桥接模式、迭代器模式、备忘录模式、解释器模式、状态模式、访问者模式等。理解并熟练运用这些设计模式,能极大地提升Java程序员的设计能力和...

    23种设计模式的java实现.zip

    21. **备忘录模式 (Memento)**:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后恢复对象的状态。 22. **观察者模式 (Observer)**:定义对象间的一对多依赖关系,当一个...

    Java程序设计模式程序设计.doc

    Java 设计模式概述 Java 设计模式是软件设计中的一种解决方案,旨在提供通用的设计架构,以便...在 JDK1.5 之后引入了 Enum 枚举,因此在 JDK1.5 之后 Singleton 单类模式又有了第三种实现方式,也是最好的实现方式。

    Design-Patterns

    以上仅是部分设计模式的概述,实际的“Design-Patterns”压缩包可能会包含更多模式的实现,如备忘录模式、访问者模式、组合模式等。理解并熟练运用这些设计模式,有助于提升Java开发人员的设计能力和代码质量。

    设计模式java案例.zip

    17. **备忘录模式(Memento)**:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后恢复对象的状态。在Java中,可以用于游戏存档或事务回滚。 18. **观察者模式(Observer)*...

    设计模式JAVA版本代码详解

    14. **备忘录模式(Memento)**:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。 以上就是Java设计模式的一些基本介绍,每个模式都有其...

    Java23个设计模式简单示例

    Observer模式可能包含Observer接口和ConcreteObserver实现。 21. **状态模式**:允许一个对象在其内部状态改变时改变它的行为。State模式可以将对象的行为状态封装在独立的类中,使得对象可以在不同状态间自由切换...

    Java 设计模式与建模专题

    15. **备忘录模式**:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后恢复对象的原始状态。 在建模方面,理解UML(统一建模语言)是关键。UML包括类图、对象图、序列图、...

    一些常用的有关java的chm文档

    在Java中,静态代理和动态代理(JDK Proxy和CGLIB)都是常见的实现方式。 7. **策略模式**:定义了一系列的算法,并将每个算法封装起来,使它们可以互相替换,使算法的变化独立于使用它的客户。 8. **模板方法模式...

    《java与模式》配套源码

    如单例模式、工厂模式、观察者模式、装饰器模式、代理模式、建造者模式、适配器模式、桥接模式、组合模式、享元模式、职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、状态模式、策略模式、...

    Java常见的设计模式

    9. **观察者模式(Observer)**:定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 10. **责任链模式(Chain of Responsibility)**:避免对象之间紧密...

    Design Patterns设计模式速查手册HandBood系列(By FengGe整理)

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

Global site tag (gtag.js) - Google Analytics