简单的观察者模式,一句话概括“一个类发布消息,其他类可以收到通知”

观察者模式

         1、什么是观察者模式

                     观察者模式理念就是当一个类发出消息后,其他类可以在不用实际调用的情况下得到通知。

                     举例:rabbitmq就是观察者模式

         2、代码实现

                     需求是发送一条消息,这次我们利用java中提供的ObServer来实现观察者模式,来更好的理解观察者模式,

                     1、首先创建消息类,用来发送

public class Message {

    private String title;
    private String content;

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}

                      2、创建发布类,该类需要继承Observable类来进行传参和发送

//发布者
public class Send extends Observable {
    //发布文章
    public void sendMsg(String title,String content){
        //封装文章
        Message message = new Message();
        message.setTitle(title);
        message.setContent(content);

        //作出修改
        this.setChanged();
        //通知所有的接收者  传入文章
        this.notifyObservers(message);
    }
}

                   3、实现接收者,发送了之后就需要接收,需要实现ObServer

//实现接收者
public class Receipt implements Observer {
    /**
     * @param o  Observable类
     * @param obj 接收到的对象
     */
    @Override
    public void update(Observable o, Object obj) {
        Message msg = (Message) obj;
        System.out.println(msg.getTitle());
        System.out.println(msg.getContent());
    }
}

                4、开始调用,此时需要注意,想要接收到就得吧接收类添加到发送类里面

public static void main(String[] args) {
        Send send = new Send();
        send.addObserver(new Receipt());
        send.sendMsg("表头","内容");

    }

猜你喜欢

转载自blog.csdn.net/qq_38384460/article/details/111464009