观察者设计模式总结

1.观察者(observer)--订阅者

update 

/**
 * 观察者
 * */
public class Coder implements Observer{
    
    private String name;
    public Coder(String name){
        this.name=name;
        print("订阅者名字--"+this.name);
    }

2.被观察者(observable)--发布者

 必要条件: 设置状态发生变化,然后根据变化进行通知notify

/**
 * 
 * 被观察者
 * **/
public class TechCto extends Observable{
    
    public void publishContent(String content){
        setChanged();//设置状态发生
        this.notifyObservers(content);//调用自身的通知
    }
    

}

主函数:

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   更新成功

 

posted @ 2017-11-12 13:52  我在途中  阅读(179)  评论(0编辑  收藏  举报