被观察者 继承 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!!");
}
}
分享到:
相关推荐
20. 备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。`java.beans.PropertyChangeSupport`类用于存储和恢复对象的属性状态。 21. 状态机模式(State Machine...
如策略(Strategy)、模板方法(Template Method)、观察者(Observer)、迭代器(Iterator)、访问者(Visitor)、命令(Command)、责任链(Chain of Responsibility)、解释器(Interpreter)、备忘录(Memento)...
23. **观察者模式(Observer)**:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 以上就是23种设计模式的基本概念和应用,它们在实际开发中扮演着至...
- **观察者模式(Observer)**:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 - **命令模式(Command)**:将一个请求封装为一个对象,从而使用户...
Java中,使用`java.util.Observable`和`java.util.Observer`接口实现。 18. **命令模式**:将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。Java...
- **行为型模式**:策略(Strategy)、模板方法(Template Method)、观察者(Observer)、迭代器(Iterator)、责任链(Chain of Responsibility)、命令(Command)、备忘录(Memento)、解释器(Interpreter)、...
18. 行为型模式:如命令、解释器、迭代器、备忘录、观察者、状态、策略、模板方法、访问者模式,它们关注的是对象之间的交互和职责分配。 通过深入学习和理解这些设计模式,开发者可以写出更高质量、更具扩展性的...
在Java中,静态代理和动态代理(JDK Proxy)可以实现这一模式。 9. **桥接模式**:将抽象部分与它的实现部分分离,使它们都可以独立地变化。在Java Swing中,组件和外观的分离就是一个桥接模式的例子。 10. **组合...
以上只是Java设计模式中的一部分,还包括组合模式、享元模式、代理模式、桥接模式、迭代器模式、备忘录模式、解释器模式、状态模式、访问者模式等。理解并熟练运用这些设计模式,能极大地提升Java程序员的设计能力和...
21. **备忘录模式 (Memento)**:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后恢复对象的状态。 22. **观察者模式 (Observer)**:定义对象间的一对多依赖关系,当一个...
Java 设计模式概述 Java 设计模式是软件设计中的一种解决方案,旨在提供通用的设计架构,以便...在 JDK1.5 之后引入了 Enum 枚举,因此在 JDK1.5 之后 Singleton 单类模式又有了第三种实现方式,也是最好的实现方式。
以上仅是部分设计模式的概述,实际的“Design-Patterns”压缩包可能会包含更多模式的实现,如备忘录模式、访问者模式、组合模式等。理解并熟练运用这些设计模式,有助于提升Java开发人员的设计能力和代码质量。
17. **备忘录模式(Memento)**:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后恢复对象的状态。在Java中,可以用于游戏存档或事务回滚。 18. **观察者模式(Observer)*...
14. **备忘录模式(Memento)**:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。 以上就是Java设计模式的一些基本介绍,每个模式都有其...
Observer模式可能包含Observer接口和ConcreteObserver实现。 21. **状态模式**:允许一个对象在其内部状态改变时改变它的行为。State模式可以将对象的行为状态封装在独立的类中,使得对象可以在不同状态间自由切换...
15. **备忘录模式**:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后恢复对象的原始状态。 在建模方面,理解UML(统一建模语言)是关键。UML包括类图、对象图、序列图、...
在Java中,静态代理和动态代理(JDK Proxy和CGLIB)都是常见的实现方式。 7. **策略模式**:定义了一系列的算法,并将每个算法封装起来,使它们可以互相替换,使算法的变化独立于使用它的客户。 8. **模板方法模式...
如单例模式、工厂模式、观察者模式、装饰器模式、代理模式、建造者模式、适配器模式、桥接模式、组合模式、享元模式、职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、状态模式、策略模式、...
9. **观察者模式(Observer)**:定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 10. **责任链模式(Chain of Responsibility)**:避免对象之间紧密...
19. **观察者模式(Observer)**:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 20. **状态模式(State)**:允许一个对象在其内部状态改变时...