1.觀察者(observer)--訂閱者設計模式
update 函數
/** * 觀察者 * */ public class Coder implements Observer{ private String name; public Coder(String name){ this.name=name; print("訂閱者名字--"+this.name); }
2.被觀察者(observable)--發佈者測試
必要條件: 設置狀態發生變化,而後根據變化進行通知notifythis
/** * * 被觀察者 * **/ public class TechCto extends Observable{ public void publishContent(String content){ setChanged();//設置狀態發生 this.notifyObservers(content);//調用自身的通知 } }
主函數:spa
public static void main(String[] args) { System.out.println("測試設計模式------------------------------------"); //被觀察者(發佈者) TechCto cto =new TechCto(); //觀察者(訂閱者) Coder coder1=new Coder("feifei"); Coder coder2=new Coder("huahua"); //訂閱者註冊到發佈者上面 cto.addObserver(coder2); cto.addObserver(coder1); //發佈信息 cto.publishContent("yumenle"); }
測試結果:設計
測試設計模式------------------------------------ 訂閱者名字--feifei 訂閱者名字--huahua feifei yumenle 更新成功 huahua yumenle 更新成功