package
com.javaeye.kang.observer;
import
java.util.Observable;
import
java.util.Observer;
/*
*
观察者模式
*
Product
是被观察者,
Customer
是观察者
*
Product
价格变化后,一定要让
Customer
知道
*
目标:
Product
不用关心具体通知谁,
Customer
也不用关心通知是谁发出的
*/
//
产品类,被观察者
class
Product
extends
Observable {
private
String
name
;
private
double
price
;
public
Product(String name,
double
price) {
this
.
name
= name;
this
.
price
= price;
}
//
可以用
spring
将对象注入进来
public
void
setObserver(Observer observer) {
this
.addObserver(observer);
}
public
void
changePrice(
double
newPrice)
{
this
.
price
= newPrice;
//
设置变化点,表示要通知观察者
this
.setChanged();
//
通知所有观察者,给一个消息
this
.notifyObservers
(
"
通知:价格变化了!变成了
"
+ newPrice);
//
此时就能够自动调用观察者的
update
方法
}
}
//
顾客类,观察者
class
Customer
implements
Observer {
private
String
name
;
public
Customer(String name) {
this
.
name
= name;
}
//
参数
1
:来源于哪个对象;参数
2
:通知消息
public
void
update(Observable observable, Object object) {
System.
out
.println(object);
}
}
public
class
ObserverTest {
public
static
void
main(String[] args) {
Product
pro =
new
Product(
"
黄瓜
"
,12);
Customer
cus =
new
Customer(
"
张三
"
);
//
绑定观察者和被观察者,一个被观察者可以设置多个观察者
//pro.addObserver(cus);
pro.setObserver(cus);
//
对上面一句的小改进
pro.changePrice(13);
}
}
|
相关推荐
C#面向对象设计模式 (行为型模式) Observer 观察者模式 视频讲座下载
C#面向对象设计模式纵横谈(19):(行为型模式) Observer 观察者模式 (Level 300)
NULL 博文链接:https://jacky-dai.iteye.com/blog/1132063
观察者模式(Observer Pattern)是一种对象行为型设计模式,它定义了对象之间的一对多依赖关系。 当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式通常用于实现分布式事件处理系统...
Observer (观察者模式) 又叫做发布/订阅(Publish/Subscribe)模式。 当一个对象的改变同时会影响其他对象的行为的时候,可以使用此设计模式。 l 主题对象 :一个需要被关注的主题对象,这个主题对象改变会影响...
Java 观察者模式的浅析 简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者...
这是JAVA设计模式中属于行为模式的部分,包括Template(模板模式)、Chain of Responsibility(责任链模式)、Memento(纪念品模式)、Mediator(中介模式)、Strategy(策略模式)、State 、Observer(观察者模式)、Visitor...
c++设计模式-行为型模式-观察者模式;qt工程;c++简单源码; 观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式...
日常开发中常用的行为型设计模式之观察者模式设计源码demo
从生活中的例子可以看出,只要对订阅号... 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己的行为。
本文实例讲述了JavaScript设计模式之观察者模式与发布订阅模式。...观察者模式属于行为型模式。在观察模式中共存在两个角色观察者(Observer)与被观察者(Subject),然而观察者模式在软件设计中是一个
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。 观察者模式demo java
观察者模式( Observer ) 迭代子模式( Iterator ) 责任链模式( Chain of Responsibility ) 命令模式( Command ) 备忘录模式( Memento ) 状态模式( State ) 访问者模式( Visitor ) 中介者模式( ...
行为型简介职责链模式(ChainofResponsibility)命令模式(Command)解释器模式(Interpreter)迭代器模式(Iterator)中介者模式(Mediator)备忘录模式(Memento)观察者模式(Observer)状态模式(State)策略模式(Strategy)模板...