设计模式Observer在java中的应用

Java深入到一定程度,就不可避免的碰到设计模式(design pattern)这一概念,了解设 计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统 中应用广泛,遵循一定的编程模式,才能使自己的代码便于理解,易于交流,Observer(观察 者)模式是比较常用的一个模式,尤其在界面设计中应用广泛,而本站所关注的是Java在电 子商务系统中应用,因此想从电子商务实例中分析Observer的应用.

虽然网上商店形式多样,每个站点有自己的特色,但也有其一般的共性,单就"商品 的变化,以便及时通知订户"这一点,是很多网上商店共有的模式,这一模式类似 Observer patern.

具体的说,如果网上商店中商品在名称 价格等方面有变化,如果系统能自动通知会员, 将是网上商店区别传统商店的一大特色.这就需要在商品product中加入Observer这样角色 ,以便product细节发生变化时,Observer能自动观察到这种变化,并能进行及时的update或 notify动作.

Java的API还为为我们提供现成的Observer接口Java.util.Observer.我们只要直接使 用它就可以.

我们必须extends Java.util.Observer才能真正使用它:

1.提供Add/Delete observer的方法;

2.提供通知(notisfy) 所有observer的方法;

import java.util.Observable;
public class product extends Observable {
private String name;
private float price;
public product(){
}
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));
}
//以下可以是数据库更新 插入命令.
public void saveToDb() {
 // .....................
}
public static void main(String[] args) {
 product p=new product();
 p.addObserver(new NameObserver());
 p.addObserver(new PriceObserver());
 p.setPrice(100);
 p.setName("name");
}
}

时间: 2024-10-31 14:10:53

设计模式Observer在java中的应用的相关文章

请问这是java中的设计模式吗?

问题描述 请问这是java中的设计模式吗? 请问下面的代码属于什么设计?为什么把set方法改成那样子 public class A{ private Integer num; private String min; public Integer gerNum(){ return num; } public A num(Integer num){ this.num = num; return this; } public String getMin(){ return min; } public

在Java中应用设计模式--Factory Method

设计 在设计模式中,Factory Method也是比较简单的一个,但应用非常广泛,EJB,RMI,COM,CORBA,Swing中都可以看到此模式的影子,它是最重要的模式之一.在很多地方我们都会看到xxxFactory这样命名的类,那么,什么是Factory Method,为什么要用这个模式,如何用Java语言来实现该模式,这就是本文想要带给大家的内容. 基本概念 Factory Method是一种创建性模式,它定义了一个创建对象的接口,但是却让子类来决定具体实例化哪一个类.当一个类无法预料要

Java中应用Observer接口实践Observer模式

在Java中通过Observable类和Observer接口实现了观察者模式 .Observer对象是观察者,Observable对象是被观察者. 1. 实现观察者模式 实现观察者模式非常简单, [1]创建被观察者类,它继承自java.util.Observable类: [2]创建观察者类,它实现java.util.Observer接口: [3]对于被观察者类, 添加它的观察者: void addObserver(Observer o) addObserver()方法把观察者对象添加到观察者对象

设计模式(Patterns in Java)

设计 板桥里人的设计模式讲解是国内媒体(包括书籍和网站)中最早的成体系介绍,本系列介绍纯为免费传播(转载本站文章,请保留作者和网址),尽量做到言简意赅,通俗易懂,但是难免有所疏漏敬请来信或论坛讨论,不断完善. 真正掌握设计模式需要在实践中不断研究和使用,关于设计模式在具体实例的应用,可以阅读板桥里人的书籍<Java实用系统开发指南>.书籍中8个实例都从设计模式.框架等高度对系统进行崭新的设计和实现,这种应用理念正是现在以及将来软件设计和编程的根本之道. 1:前言 学习GoF设计模式的重要性 建

谈谈23种设计模式在Android项目中的应用

前言 本文将结合实际谈谈23种设计模式,每种设计模式涉及 定义:抽象化的定义与通俗的描述,尽量说明清楚其含义与应用场景 示例:如果项目中有使用过该模式,则会给出项目中的代码,否则会给出尽可能简单好理解的java代码 Android:该设计模式在Android源码框架中哪些地方有使用到 重构:项目中是否存在可以用该模式进行重构的地方,如果有会给出重构前与重构后的代码或者思路 用这种方式进行介绍设计模式,旨在结合每天都在接触的Android实际项目开发更好地理解设计模式,拉近与设计模式的距离,同时在

JAVA中的观察者模式实例教程

观察者模式是一种行为设计模式.观察者模式的用途是,当你对一个对象的状态感兴趣,希望在它每次发生变化时获得通知.在观察者模式中,观察另外一个对象状态的对象叫做Observer观察者,被观察的对象叫着Subject被观察者.根据GoF规则,观察者模式的意图是: 定义对象之间一对多的依赖关系,一个对象状态改变,其他相关联的对象就会得到通知并被自动更新. Subject(被观察者)包含了一些需要在其状态改变时通知的观察者.因此,他应该提供给观察者可以register(注册)自己和unregister(注

Java中的观察者模式实例讲解_java

观察者模式是一种行为设计模式.观察者模式的用途是,当你对一个对象的状态感兴趣,希望在它每次发生变化时获得通知.在观察者模式中,观察另外一个对象状态的对象叫做Observer观察者,被观察的对象叫着Subject被观察者.根据GoF规则,观察者模式的意图是: 复制代码 代码如下: 定义对象之间一对多的依赖关系,一个对象状态改变,其他相关联的对象就会得到通知并被自动更新. Subject(被观察者)包含了一些需要在其状态改变时通知的观察者.因此,他应该提供给观察者可以register(注册)自己和u

Java中static、this、super、final用法

一.static  请先看下面这段程序:   public class Hello{     public static void main(String[] args){ //(1)       System.out.println("Hello,world!");   //(2)     }   } 看过这段程序,对于大多数学过Java 的从来说,都不陌生.即使没有学过Java,而学过其它的高级语言,例如C,那你也应该能看懂这段代码的意思.它只是简单的输出"Hello,w

Thinking:Java中static、this、super、final用法

Thinking:Java中static.this.super.final用法   本篇旨在帮助准备学习Java以及刚接触Java的朋友认识.掌握和使用static.this.super.final这几个关键字的使用.Java博大精深,我也是一位正在学习和使用Java的爱好者,文中难免有不妥之处,欢迎指正. 一.static 请先看下面这段程序:   public class Hello{    public static void main(String[] args){ //(1)