觀察者模式
當對象間存在一對多關(guān)系時实苞,則使用觀察者模式(Observer Pattern)豺撑。比如,當一個對象被修改時硬梁,則會自動通知它的依賴對象前硫。觀察者模式屬于行為型模式。定義對象間的一種一對多的依賴關(guān)系荧止,當一個對象的狀態(tài)發(fā)生改變時屹电,所有依賴于它的對象都得到通知并被自動更新。
一個對象狀態(tài)改變給其他對象通知的問題跃巡,而且要考慮到易用和低耦合危号,保證高度的協(xié)作。
代碼實現(xiàn):
public class Observer_One implements Observer{
@Override
public void update(Observable o,Object obj){
System.out.println("Observer_One obj ="+obj);
}
}
...
public class Observer_Two implements Observer{
@Override
public void update(Observable o,Object obj){
System.out.println("Observer_Two obj ="+obj);
}
}
...
public class Publish extends Observable{
public void publish(String data){
setChange();//必須調(diào)用 父類的這個方法,不然數(shù)據(jù)不會發(fā)送
notifyObserver(data);//發(fā)送數(shù)據(jù)變化通知
}
}
public class Test{
public void main(String[] args){
Publish public = new Publish();
publish.addObserver(new Observer_One());
publish.addObserver(new Observer_Two());
public.publish("發(fā)送數(shù)據(jù)")
}
}