观察者模式

来源:互联网 发布:淘宝客域名注册技巧 编辑:程序博客网 时间:2024/04/19 18:29

观察者模式分为:抽象标题、具体标题、抽象观察者、具体观察者

就如订阅网站资料一样,订阅资料的对象是具体观察者,网站资料是具体主题,每次后台进行发送内容至订阅者,订阅者可以是不同对象的集合。

1.观察者

public class Coder implements Observer {


public String name;


public Coder(String aName) {
name = aName;
}


public void update(Observable o, Object arg) {
System.out.println( "Hi, " +  name + ", AndroidWeekly更新啦, 内容 : " + arg);
}


@Override
public String toString() {
return "码农 : " + name;
}


}

2.后台发送

public class AndroidWeekly extends Observable {


public void postNewPublication(String content) {
// 标识状态或者内容发生改变
setChanged();
// 通知所有观察者
notifyObservers(content);
}


}

3.执行内容

public static void main(String[] args) {
// 被观察的角色
        AndroidWeekly androidWeekly = new AndroidWeekly();
        // 观察者
        Coder mrsimple = new Coder("mr.simple");
        Coder coder1 = new Coder("coder-1");
        Coder coder2 = new Coder("coder-2");
        Coder coder3 = new Coder("coder-3");
        Coder coder4 = new Coder("coder-4");


        // 将观察者注册到可观察对象的观察者列表中
        androidWeekly.addObserver(mrsimple);
        androidWeekly.addObserver(coder1);
        androidWeekly.addObserver(coder2);
        androidWeekly.addObserver(coder3);
        androidWeekly.addObserver(coder4);


        // 发布消息
        androidWeekly.postNewPublication("新的一期AndroidWeekly来啦!");
}




1 0
原创粉丝点击