观察者模式
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("表头","内容");
}