设计模式(1)观察者模式简单理解

来源:互联网 发布:sql 删除表 编辑:程序博客网 时间:2024/05/02 01:35

什么叫做观察者模式呢?

观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。打个比方:如果微信用户是观察者,那么微信公众号是被观察者。

具体的观察者:

public class WeixinUser implements Observer {    // 微信用户名    private String name;    public WeixinUser(String name) {        this.name = name;    }    @Override    public void update(String message) {        System.out.println(name + "-" + message);    }}

具体的被观察者:

public class SubscriptionSubject implements Subject {    //储存订阅公众号的微信用户    private List<Observer> weixinUserlist = new ArrayList<Observer>();    @Override    public void attach(Observer observer) {        weixinUserlist.add(observer);    }    @Override    public void detach(Observer observer) {        weixinUserlist.remove(observer);    }    @Override    public void notify(String message) {        for (Observer observer : weixinUserlist) {            observer.update(message);        }    }}

客户端调用

public class Client {    public static void main(String[] args) {        SubscriptionSubject mSubscriptionSubject=new SubscriptionSubject();        //创建微信用户        WeixinUser user1=new WeixinUser("杨影枫");        WeixinUser user2=new WeixinUser("月眉儿");        WeixinUser user3=new WeixinUser("紫轩");        //订阅公众号        mSubscriptionSubject.attach(user1);        mSubscriptionSubject.attach(user2);        mSubscriptionSubject.attach(user3);        //公众号更新发出消息给订阅的微信用户        mSubscriptionSubject.notify("刘望舒的专栏更新了");    }}
打印结果:
杨影枫-刘望舒的专栏更新了月眉儿-刘望舒的专栏更新了紫轩-刘望舒的专栏更新了

0 0
原创粉丝点击