簡單理解觀察者模式
/** * 主題(被觀察者資訊)
*/public inte***ce subject
/** * 觀察者介面
*/public inte***ce observer
/** * 不同的顯示
*/public inte***ce displayelement
/** * 主題物件類
*/public class weatherdata implements subject
@override
public boolean registerobserver(observer observer)
@override
public boolean removeobserver(observer observer)
return observers.remove(observer);
} @override
public int notifyobservers()
int result = 0;
for (int i = 0,size=observers.size(); i < size; i++)
return result; }
/*** 主題發生變化,通知觀察者
*/public void measurementschanged()
/*** 改變主題
*/public void setmeasurements(double temperature, double humidity, double pressure)
}/**
* 觀察者物件類
*/public class currentconditionsdisplay implements observer,displayelement
@override
public boolean update(double temp, double humidity, double pressure)
@override
public void display()
}/**
* 資料來源
*/public class weatherstation
}
設計模式總結篇系列 觀察者模式(Observer)
觀察者模式中通常有兩個基本的概念主題 觀察者和被觀察者。當被觀察者狀態發生改變時,需要通知相應的觀察者,當然,每個被觀察者所對應的觀察者可能不知乙個,他們之間是1 n的關係。用專業一點的術語對觀察者模式的描述為 當乙個物件變化時,其它依賴該物件的物件都會收到通知,並且隨著變化。觀察者模式的一般實現方...
理解設計模式(觀察者)
觀察者模式,保證主題和若干觀察者之間的一致性。有時又被稱為發布 訂閱subscribe 模式 模型 檢視view 模式 源 收聽者listener 模式或從屬者模式 此種模式通常被用來實現事件處理系統 乙個系統,由乙個物件和若干協作物件組成,同時要避免這些物件之間相互耦合 一般由介面或抽象類實現 註...
觀察者模式簡單總結
觀察者模式就是兩個類的使用 public inte ce observer public class observable就像我們平時寫監聽一樣,不過這次是把listener加入集合中使用。public class aa public void notifyobservers public inte...