JAVA 观察者模式代码

观察者模式代码
import java.util.Observable;
public class Product extends Observable{
	private double price=2.0;

	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		System.out.println("setPrice");
		this.setChanged();
		this.notifyObservers(price);//找2个方法次序不能换
		this.price = price;
	}	
}
public class PriceObserver implements Observer {
	private double price;
	public PriceObserver(double price) {
		this.price = price;
	}
	public void update(Observable ob, Object obj) {
		double pri = (Double) obj;// 注意代码 解箱
		if (pri > 1.1 * price) {
			System.out.println("通货膨胀");
		} else {
			System.out.println("物价正常");
		}
		this.price=pri;
	}
	public static void main(String[] args) {
		Product p=new Product();
		PriceObserver po=new PriceObserver(p.getPrice());
		p.addObserver(po);
		p.setPrice(3.0);
		p.setPrice(3.1);
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值