⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 observer1.java

📁 郭克华j2ee高级框架实战教学视频源代码 这个是比较值得一看的 由郭克华博士在总结多年Java培训的基础上
💻 JAVA
字号:
//产品类,如果changePrice调用,一定要通知Customer
//目标:Product不用关心要通知谁,Customer也不用关心通知是谁发出
//Product:被观察者,Customer:观察者
import java.util.*;
class Product extends Observable{
	private String pname;
	private double price;
	public void setObserver(Observer observer){//可以用Spring注入
		this.addObserver(observer);
		}
	public Product(String pname,double price){
		this.pname = pname;
		this.price = price;
		}
	public void changePrice(double newPrice){
		this.price = newPrice;
		//通知观察者
		this.setChanged();	//设置变化点,表示要通知观察者
		this.notifyObservers("通知:价格变化了");//通知所有观察者,给一个消息
		//此时就能够自动调用观察者的update方法
		}
	}
//顾客类
class Customer implements Observer{
	private String cname;
	public Customer(String cname){
		this.cname = cname;
		}
	public void update(Observable o, Object arg){//参数1:来源于哪个对象,参数2:消息
		System.out.println(arg);
		}
	public void printInfo(){
		System.out.println(cname);
		}
	}
	
public class Observer1{
	public static void main(String args[]){
		Product pro = new Product("白菜",12);
		Customer cus = new Customer("张三");
		pro.setObserver(cus);//观察者和被观察者要绑定,一个被观察者可以设置多个观察者
		pro.changePrice(13);
		
		
		}
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -