- 浏览: 60927 次
- 性别:
- 来自: 青岛
文章分类
- 全部博客 (69)
- TWaver (1)
- jBPM (0)
- Struts2.0 (0)
- Hibernate (1)
- Spring (3)
- Swing (4)
- JPA (0)
- EJB (1)
- Birt (0)
- jxl (0)
- Seam (0)
- JSF (1)
- JSP (0)
- Servlet (0)
- JS (0)
- JBoss (0)
- SWT (3)
- Lucene (0)
- 设计模式 (22)
- 其他 (2)
- java (12)
- socket (1)
- android (1)
- ibatis (1)
- sqlite (1)
- junit (1)
- oracle (9)
- poi (1)
- php (1)
- bigbluebutton (1)
最新评论
-
u013246812:
访问不了啊,链接不存在!要么给个源码也行啊!
地方性网站 城阳部落 -
yhman:
原地复活。。。
php+mysql -
wo327808864:
...
socket传输自定义对象 -
锅巴49:
说得好,理解了。
状态模式 -
yhman:
哈哈。。。。
java的文件锁
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让他们能够自动更新自己。
观察者模式的组成
1.抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类或接口来实现
2.抽象观察者角色:为所有具体的观察者定义一个接口,在得到主题的通知时更新自己。
3.具体主题角色(Watched):把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类或接口来实现。
4.具体观察者角色(Watcher):为所有具体的观察者定义一个接口,在得到主题的通知时更新自己
可以用到jdk自带的Observer接口和Observable类
在下面我实现的这个例子中,在一个frame实现了Observer接口,充当观察者,当继承了的Observable的Value中值有变化时,通知Frame,为text set值。
观察者:
被观察者
test:
观察者模式的组成
1.抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类或接口来实现
2.抽象观察者角色:为所有具体的观察者定义一个接口,在得到主题的通知时更新自己。
3.具体主题角色(Watched):把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类或接口来实现。
4.具体观察者角色(Watcher):为所有具体的观察者定义一个接口,在得到主题的通知时更新自己
可以用到jdk自带的Observer接口和Observable类
在下面我实现的这个例子中,在一个frame实现了Observer接口,充当观察者,当继承了的Observable的Value中值有变化时,通知Frame,为text set值。
观察者:
package pattern.observer; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.LayoutManager; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Observable; import java.util.Observer; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextField; public class Message extends JFrame implements Observer { JTextField text; String s = null; private static Message message; private Message() { super(); init(); } public static synchronized Message getInstance() { if (message == null) { message = new Message(); } return message; } void init() { setSize(new Dimension(500, 500)); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); getContentPane().setLayout(new BorderLayout()); text = new JTextField(); text.setSize(new Dimension(100, 40)); getContentPane().add(text, BorderLayout.CENTER); JButton jb = new JButton(); jb.setSize(new Dimension(100, 100)); getContentPane().add(jb, BorderLayout.NORTH); jb.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.print("df"); } }); setVisible(true); } @Override public void update(Observable o, Object arg) { text.setText(s); } }
被观察者
package pattern.observer; import java.util.Observable; public class Value extends Observable { public void changeValue() { Message message = Message.getInstance(); message.s = "hello!"; super.setChanged(); super.notifyObservers(); } }
test:
package pattern.observer; public class Test { public static void main(String[] args) throws InterruptedException { Message message = Message.getInstance(); Thread.sleep(3000); Value v = new Value(); v.addObserver(message); v.changeValue(); } }
发表评论
-
亨元模式
2010-05-14 13:18 998flyweight模式的出现是因为面向对象开发有时在设计和性能 ... -
备忘录模式
2010-05-14 11:49 794memento是一个保存另外一个对象内部状态拷贝的对象.这样以 ... -
解释器模式
2010-05-14 11:33 850Interpreter,解释器模式描述了如何构成一个简单的语言 ... -
中介者模式
2010-05-14 11:07 734Mediator Pattern 用一个调停对象来封装一系列的 ... -
原型模式
2010-05-13 19:24 722原型模式(Prototype): 用原型实例指定创建对象的种类 ... -
状态模式
2010-05-13 17:20 812State的定义: 不同的状态,不同的行为;或者说,每个状态有 ... -
访问者模式
2010-05-13 15:15 584表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各 ... -
责任链模式
2010-05-13 13:50 694Chain of Responsibility(CoR) ... -
组合模式
2010-05-12 22:58 618组合模式(Composite Pattern)有时候又叫做部分 ... -
迭代器模式
2010-05-12 19:41 713提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对 ... -
装饰模式
2010-05-12 19:29 611Decorator pattern 装饰模式是用于对象的创建, ... -
命令模式
2010-05-12 18:02 647命令模式: 将请求封闭成对象,这可以让你使用不同的请求,队列. ... -
桥梁模式
2010-05-12 01:01 389桥梁(Bridge)模式 桥梁模式是一个非常有用的模式,也 ... -
建造者模式
2010-05-11 23:27 654Builder模式也叫建造者模式或者生成器模式,是由GoF提出 ... -
模板模式
2010-05-11 22:19 666模板方法(Template Method)模式属于行为模式,定 ... -
适配器模式
2010-05-11 16:58 579将一个类的接口转换成客户希望的另外一个接口。Adapter模式 ... -
门面模式
2010-05-11 14:39 1252Facade外观模式: 为子系统中的一组接口提供一个统一接口 ... -
工厂模式
2010-05-11 10:55 654通常来讲,工厂模式分为:简单工厂模式,工厂方法模式和抽象工厂模 ... -
单例模式
2010-05-10 23:53 672主类: public class TheKing { p ... -
代理模式
2010-05-10 18:22 761定义 代理模式( ...
相关推荐
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现发布-订阅...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现事件驱动或者发布...
本篇文章将深入探讨Qt中的观察者模式(Observer Pattern),这是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 观察者模式的核心...
观察者模式是设计模式中的一种行为模式,它在Java编程中有着广泛的应用。该模式的主要目的是定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式也被...
观察者模式,也被称为发布-订阅模式,是软件设计中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式在分布式系统、事件驱动...
观察者模式(Observer Pattern)是设计模式中的一种行为模式,它允许一个对象,当其状态发生改变时,能够自动通知所有依赖它的其他对象。在Java中,这种模式已经被内置到语言核心,使得开发者可以轻松地实现事件驱动...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...
观察者模式(Observer Pattern)是设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。这种模式常用于实现事件驱动的系统或者...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...
在这个名为“运用MVC模式及观察者模式的java小程序”的项目中,我们重点探讨了两种经典的设计模式:Model-View-Controller(MVC)模式和Observer(观察者)模式。这两种模式在JavaWeb开发中扮演着至关重要的角色。 ...
观察者模式,也被称为发布-订阅(Publish-Subscribe)模式,是软件设计中的一种行为模式。在iOS开发中,它是一种让多个对象监听或订阅某一个主题对象的状态变化,并在状态变化时自动收到通知的方式。这种模式使得...
观察者模式详解 观察者模式(Observer Design Pattern)是行为型设计模式的一种,主要解决的是“类或对象之间的交互”问题。它定义了一个一对多的依赖关系,当一个对象的状态改变时,所有依赖的对象都会自动收到...
观察者模式(Observer Pattern)是一种行为设计模式,它允许你定义一个订阅机制,可以在对象状态改变时通知多个“观察”该对象的其他对象。在这个"股票分析程序"中,我们很显然看到它利用了这种模式来实时更新股票...
观察者模式是面向对象设计中的一种经典模式,它在软件工程中扮演着重要的角色,用于实现对象间的松耦合。这种模式定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并...
观察者模式(Observer Pattern)是设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。这种模式常用于事件驱动的系统或者实时...
观察者模式是一种行为设计模式,它允许你定义一个订阅机制,可以在对象状态改变时通知多个“观察”该对象的其他对象。在Java或其他面向对象语言中,这种模式通常用于实现事件处理或发布/订阅系统。在给定的“观察者...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...
### Unity3D设计模式之观察者模式 #### 观察者模式概述 观察者模式(Observer Pattern)是一种软件设计模式,属于行为型模式之一。它定义了对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它...
### 观察者模式概述与应用 #### 一、观察者模式定义 观察者模式是一种常用的软件设计模式,主要用于处理对象间的依赖关系。在这种模式下,一个对象(称为“主题”或“被观察者”)负责维护一组依赖于它的对象...