- 浏览: 137878 次
文章分类
- 全部博客 (149)
- Java (41)
- 设计模式 (23)
- php (2)
- C++ (2)
- Linux (6)
- C (1)
- JavaEE (27)
- javascript (2)
- uplodify (1)
- Mybatis (2)
- Maven (4)
- Lucene (3)
- commons (1)
- Spring (7)
- SQL (3)
- mahout (1)
- MySQL (2)
- extjs4.2.1 (2)
- ubuntu (1)
- hadoop (1)
- hibernate (1)
- Spring JPA (2)
- JPA 2.0 (1)
- express (1)
- redis (2)
- angularjs (1)
- git (1)
- Python (1)
- logging (2)
最新评论
-
xlaohe1:
controller返回的是一个POJO对象,然后用@Resp ...
Spring MVC 4.X ResponseBody 日期类型Json 处理 -
TRAMP_ZZY:
能帮到你,我也很高兴。
Spring MVC 4.X ResponseBody 日期类型Json 处理 -
jobzjc:
第一段有帮到我。如果是非对象,Object方式传递的时候,第一 ...
Spring MVC 4.X ResponseBody 日期类型Json 处理 -
TRAMP_ZZY:
dingran 写道为什么,我怎么就没找到System > ...
Ubuntu 12.04 设置 IBus 开机启动 -
dingran:
为什么,我怎么就没找到System >> Pref ...
Ubuntu 12.04 设置 IBus 开机启动
1. 利用Java 内置的类和接口实现观察者模式
2. 观察者实现的代码
3. 测试Client类
public class WeatherData extends Observable { private float temperature; private float humidity; private float pressure; private String data = "zhangzhaoyu"; public WeatherData() {} public void measurementsChanged() { super.setChanged(); super.notifyObservers(data); } public void setMeasurements(float temperature, float humidity, float pressure) { this.temperature = temperature; this.humidity = humidity; this.pressure = pressure; measurementsChanged(); } public float getTemperature() { return this.temperature; } public float getHumidity() { return this.humidity; } public float getPressure() { return this.pressure; } }
2. 观察者实现的代码
public class CurrentDisplay implements Observer, DisplayElement { Observable observable; private float temperature; private float humidity; public CurrentDisplay(Observable observable) { this.observable = observable; observable.addObserver(this); } @Override public void update(Observable o, Object arg) { if (o instanceof WeatherData) { WeatherData weatherData = (WeatherData) o; this.temperature = weatherData.getTemperature(); this.humidity = weatherData.getHumidity(); display(); } } @Override public void display() { System.out.println("Current conditions : " + temperature + " F degrees and " + humidity + " % humidity"); } }
public class ForecastDisplay implements Observer, DisplayElement { Observable observable; private float temperature; private float humidity; private float pressure; private String data = null; public ForecastDisplay(Observable _observable) { this.observable = _observable; this.observable.addObserver(this); } @Override public void update(Observable o, Object arg) { if (o instanceof WeatherData) { WeatherData data = (WeatherData) o; this.temperature = data.getTemperature(); this.humidity = data.getHumidity(); this.pressure = data.getPressure(); this.data = (String) arg; display(); } } @Override public void display() { System.out.println("Current conditions : " + temperature + " F degrees and " + humidity + " % humidity" + " data : " + this.data); } }
3. 测试Client类
public class Client { public static void main(String[] args) { WeatherData observable = new WeatherData(); CurrentDisplay currentDisplay = new CurrentDisplay(observable); ForecastDisplay forecastDisplay = new ForecastDisplay(observable); observable.setMeasurements(10f, 34.5f, 78.9f); } }
发表评论
-
设计模式-享元模式(Flyweight)
2014-06-20 13:11 551使用共享对象可有效地支持大量的细粒度的对象。要求细粒度的对象 ... -
设计模式-桥接模式
2014-06-19 17:12 328将抽象和实现解耦,使得两者可以独立地变化。 桥接模式使用了 ... -
设计模式-状态模式
2014-06-16 10:37 410状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像 ... -
设计模式-代理和动态代理模式
2014-06-13 14:57 4541.简单代理模式 interface Interface ... -
java 迭代器
2014-06-11 18:04 633public class ReversibleArrayL ... -
设计模式-内部类工厂模式
2014-06-10 23:33 533public interface Service { ... -
设计模式-迭代器模式
2014-06-10 14:37 457迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又 ... -
设计模式-模板方法
2014-06-05 13:00 360public abstract class Caffein ... -
设计模式-适配器模式
2014-06-03 22:14 429适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让 ... -
设计模式-命令模式
2014-06-02 23:24 375public interface Command { ... -
设计模式-工厂方法
2014-06-01 18:04 488public abstract class PizzaSt ... -
设计模式-策略模式
2013-12-16 12:50 481Define a family of algorithms ... -
设计模式-装饰模式
2013-12-16 12:49 458Attach additional responibili ... -
设计模式-责任链模式
2013-12-11 18:00 542Avoid coupling the sender of ... -
设计模式-命令模式
2013-12-08 15:11 440命令模式是一个高内聚的模式。 Encapsulate ... -
设计模式-中介者模式
2013-12-08 12:29 401在多个对象依赖的情况下,通过加入终结者角色,取消了多个对象 ... -
设计模式-建造者模式(生成器模式)
2013-11-20 11:35 532ArrayList 或者 HashMap 如果定义为类的成员 ... -
设计模式-模板方法模式
2013-11-20 10:45 448Define the skeleton of an algor ... -
设计模式-抽象工厂模式
2013-11-18 15:49 429Provide an interface for creati ... -
设计模式-工厂方法模式
2013-11-18 08:59 621Define an interface for creatin ...
相关推荐
观察者模式,也称为发布-订阅模式或事件驱动模式,是一种行为设计模式,它定义了对象间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 在C#、ASP.NET等.NET框架中,...
观察者模式(Observer Pattern)是软件设计模式中的行为模式之一,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现事件驱动或发布-...
总结来说,观察者模式是一种重要的设计模式,它允许对象在状态改变时自动通知其他对象,从而降低了系统各部分之间的耦合度,提高了代码的灵活性和可扩展性。在实际项目中,正确使用观察者模式可以有效地管理组件间的...
结合微信公众号讲解观察者模式,生动形象,关键是上手快啊
观察者模式(Observer Pattern)是一种行为设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都会得到通知并自动更新。该模式适用于需要在对象间建立动态的、松散耦合的关系的...
观察者模式是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。这个模式在很多场景下都有广泛的应用,例如事件处理、...
基于MFC实现的消息监听机制,利用了设计模式中的观察者模式,对线程间的同步做了优化,以及可以选择消息的发送类型:同步或异步发送。对于监听者而言在注册监听的同时可以选择监听的消息类型,避免了发送者发送的...
JAVA-设计模式-行为型模式-观察者模式
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...
Android设计模式--观察者模式DEMO 观察者模式是一个使用频率非常高的模式,他最常用的地方是GUI系统和订阅-发布系统。 该模式的最重要的作用就是解耦,使观察者和被观察者之间依赖尽可能小,甚至好无依赖。
观察者模式(Observer Pattern)是行为设计模式的一种,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 观察者模式的核心思想是发布-订阅模型,其中...
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它在C++中的应用广泛且实用。这种模式的核心思想是“主体”(Subject)与“观察者”(Observer)之间的松耦合关系,允许一个对象(即主体)的状态...
c++设计模式-行为型模式-观察者模式;qt工程;c++简单源码; 观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...
观察者模式是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 观察者模式的核心思想是主体(Subject)与观察者(Observer)之间的...
观察者模式(Observer Pattern)是其中一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 在Java中,观察者模式通常通过`java.util....