java 自带观察者模式_java 内置的观察者模式
1、可觀察的對象
public class PurchaseDate extends Observable {
private int Id;
private String orderNumber;
public PurchaseDate() {
}
/** 觀察對象狀態 */
public void measurementsChanged() {
setChanged();// 改變狀態 java內置的觀察者模式的方法
notifyObservers();// 通知所有觀察者 java內置的觀察者模式的方法
}
public void setMeasurement(int Id, String orderNumber) {
this.Id = Id;
this.orderNumber = orderNumber;
measurementsChanged();
}
public int getId() {
return Id;
}
public void setId(int id) {
Id = id;
}
public String getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(String orderNumber) {
this.orderNumber = orderNumber;
}
}
2、觀察者
public class LogPurchase implements Observer {
private String orderNumber;
/** 內部屬性 */
Observable observable;
/** 登記為觀察者 */
public LogPurchase(Observable observable) {
this.observable = observable;
observable.addObserver(this);
}
/** 確定觀察對象是PurchaseDate 然后調用自己的方法 */
@Override
public void update(Observable o, Object arg) {
if (o instanceof PurchaseDate) {
PurchaseDate p = (PurchaseDate) o;
this.orderNumber = p.getOrderNumber();
display();
}
}
public void display() {
System.out.println("觀察者接受到的:" + orderNumber);
}
public String getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(String orderNumber) {
this.orderNumber = orderNumber;
}
}
3、測試
public class Purchase {
public static void main(String[] args) {
PurchaseDate p=new PurchaseDate();
LogPurchase log=new LogPurchase(p);
p.setMeasurement(1,"我是觀察對象");
System.out.println("-------");
}
}
總結
以上是生活随笔為你收集整理的java 自带观察者模式_java 内置的观察者模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 花呗分期买手机额度不够怎么办
- 下一篇: 爱立信被罚74亿元 交付10亿美元和解