- 浏览: 249389 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (303)
- c (31)
- c++ (16)
- java (18)
- c# (1)
- python (3)
- java web (6)
- oracle (7)
- sqlserver (2)
- mysql (2)
- android (24)
- android系统 (15)
- android多媒体部分 (15)
- android游戏 (12)
- linux (26)
- javaScript (1)
- ajax (1)
- node JS (2)
- html (5)
- apache (3)
- jboss (1)
- weblogic (0)
- 通信协议 (10)
- 云计算 (1)
- 分布式 (5)
- ejb (1)
- webservice (5)
- 设计模式 (16)
- JNI (6)
- swing (13)
- 版本控制 (1)
- UML (1)
- xml (4)
- spring (5)
- hibernate (5)
- struts1 (3)
- struts2 (4)
- ibatis (0)
- tomcat (2)
- 心得体会 (1)
- css (1)
- 嵌入式 (41)
- arm体系结构 (10)
observer设计者模式
示例代码如下:
/**
* 商品
*
* @time 下午09:37:56
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class Procuct extends Observable {
private String name;
private float price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
// 设置变们点
setChanged();
notifyObservers(name);
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
// 设置变们点
setChanged();
notifyObservers(new Float(price));
}
/**
* TODO 保存数据
*/
public void saveToDb() {
}
}
/**
* 自定义观察者
*
* 对商品名进行观察
*
* @time 下午09:43:58
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class NameObserver implements Observer {
private String name = null;
@Override
public void update(Observable o, Object arg) {
if (arg instanceof String) {
name = (String) arg;
// 此处可以和用户互动
System.out.println("nameObserver : name changet to" +
name);
}
}
}
/**
* 自定义观察者
*
* 对商品价格进行观察
*
* @time 下午09:43:58
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class PriceObserver implements Observer {
private float price = 0;
@Override
public void update(Observable o, Object arg) {
if (arg instanceof Float) {
price = ((Float) arg).floatValue();
//此处可以和用户互动
System.out.println("nameObserver : price changet to" +
price);
}
}
}
/**
* 测试观察者
*
* @time 下午09:48:34
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class TestObserver {
public static void main(String[] args) {
Procuct product = new Procuct();
NameObserver nameObserver = new NameObserver();
PriceObserver priceObserver = new PriceObserver();
product.addObserver(nameObserver);
product.addObserver(priceObserver);
product.setName("tell me why");
product.setPrice(2.22f);
}
}
发表评论
-
java 设计模式学习笔记十六 chain of responsibility 职责链设计模式
2012-11-09 00:15 719chain of responsibility 职责链设计模式 ... -
java 设计模式学习笔记十五 strategy 策略设计模式
2012-11-02 21:22 672strategy 策略设计模式 定义一系列算法,把这些算 ... -
java 设计模式学习笔记一 singleton单例
2012-09-08 18:47 629保证在java程序中,一个class类只有一个实例存在 节省 ... -
java 设计模式学习笔记二 工厂模式Factory
2012-09-28 18:03 654工厂模式:factory 工厂模式就相当于创建实例对象的ne ... -
java 设计模式学习笔记三 Builder模式
2012-09-30 23:25 668设计模式 builder 将一个复杂的对象构建与他的表示分离 ... -
java 设计模式学习笔记四 prototype模式
2012-10-01 21:56 614prototype原型模式 用原型实例指定创建对象种类, ... -
java 设计模式学习笔记五Adapter适配器模式
2012-10-02 23:09 616adapter适配器模式 将两个不兼容的类纠合在一起,属于结 ... -
java 设计模式学习笔记六 proxy代理模式
2012-10-03 22:21 678proxy代理模式 为其他对象提供一种代理以控制对这个 ... -
java 设计模式学习笔记七 facade外观模式
2012-10-04 22:44 608facade外观设计模式 为子系统中的一组接口提供一个统一的 ... -
java 设计模式学习笔记八 composite组合模式
2012-10-05 21:38 716composite组合模式 将对象以树形式组织起来和chai ... -
java 设计模式学习笔记九 decorator装饰模式
2012-10-08 23:39 716decorator装饰模式 动态的给一个对象添加一些额外 ... -
java 设计模式学习笔记十 bridge桥模式
2012-10-18 22:04 757bridge桥模式 将抽象和行为划分开来,各自独立但能动态结 ... -
java 设计模式学习笔记十一flyweight享元设计模式
2012-10-19 21:37 594flyweight享元设计模式 避免拥有相同内容的小类的开销 ... -
java 设计模式学习笔记十二 command命令设计模式
2012-10-20 22:06 597command命令设计模式 类似于callback的功能,就 ... -
java 设计模式学习笔记十四 template模版模式
2012-10-25 21:54 579/** * 模版 * * @time 下午09:58:0 ...
相关推荐
设计模式C++学习之观察者模式(Observer)
1、爪哇语言结构性模式之变压器模式介绍 2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立性模式介绍 4、单态创立性模式介绍 5、单态创立性模式介绍 6、观察者模式介绍7、责任链模式 8、设计模式之Observer 9、...
结合微信公众号讲解观察者模式,生动形象,关键是上手快啊
设计模式之Observer 设计模式之Chain of Responsibility(职责链) 设计模式之Command 设计模式之State 设计模式之Strategy(策略) 设计模式之Mediator(中介者) 设计模式之Interpreter(解释器) 设计模式之Visitor
这是JAVA设计模式中属于行为模式的部分,包括Template(模板模式)、Chain of Responsibility(责任链模式)、Memento(纪念品模式)、Mediator(中介模式)、Strategy(策略模式)、State 、Observer(观察者模式)、Visitor...
我们说学习Java应该从Swing开始,那么学习Swing最重要的思想就是对于观察者模式的理解(Observer Pattern)。因为,该设计模式在Java Swing框架中贯穿了始终。对于C#的委托、代理概念所使用的Callback(回调模式--...
Observer设计模式是一种经典的设计模式,在GOF 23种设计模式种 比较常用于实际。主要是有类指针传递并引用方法和消息传递响应的方法来实现。
观察者模式(Observer Pattern) 状态模式(State Pattern) 空对象模式(Null Object Pattern) 策略模式(Strategy Pattern) 模板模式(Template Pattern) 访问者模式(Visitor Pattern) 4 J2EE 模式 这些设计...
《java设计模式(第2版)》适合各个层次的java开发人员与设计人员阅读,也可以作为学习java与设计模式的参考读物或教材。 目录: 第1章 绪论 1 第2章 接口型模式介绍 8 第3章 适配器(adapter)模式 13 第4章 外观(facade...
java设计模式之Observer参考.pdf
java设计模式之Observer[整理].pdf
里面包含了23中设计模式源代码,其中包括工厂模式(Factory)、单例(Singleton)、观察者模式(Observer)、适配器模式(Adapter)、Template模式、Decorate模式、proxy模式等 这些代码对于初学者看起来稍微复杂一些,我...
AbstractFactory ( 抽象工厂 ) FactoryMethod ( 工厂方法 ) Singleton ( 单态模式 ) ...Observer ( 观察者模式 ) State ( 状态模式 ) Strategy ( 策略模式 ) TemplateMethod ( 模板方法 ) Visitor ( 访问者模式 )
用Java实现23种设计模式 1. 创建型模式 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern)...
主要介绍了Java设计模式之观察者模式(Observer模式)介绍,Java深入到一定程度,就不可避免的碰到设计模式(design pattern)这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解,需要的朋友可以...
Observer (观察者模式) 又叫做发布/订阅(Publish/Subscribe)模式。 当一个对象的改变同时会影响其他对象的行为的时候,可以使用此设计模式。 l 主题对象 :一个需要被关注的主题对象,这个主题对象改变会影响...
首先介绍了Java中面向对象特性和技术,逐个分析Abstract Factory;Builder;Prototype;Singleton;Adapter (对象);Bridge;Composite;Decorator;Facade;Flyweight;Proxy;Iterator;Observer等模式
C#面向对象设计模式纵横谈(19):(行为型模式) Observer 观察者模式 (Level 300)
观察者模式(Observer) 用意:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。
适合Java设计模式期末考试选择题复习,形式如下: 10.(单选题)Facade(外观)模式的意图是 正确答案: A A.希望简化现有系统的使用方法,你需要定义自己的接口 B.将一个无法控制的现有对象与一个特定借口相匹配。 C....