Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说Java实现发布订阅模式,希望能够帮助你!!!。
发布订阅模式是软件开发者很常见的一种设计模式,很多开源库都使用了发布订阅模式,例如RxJava、EventBus、Vue等,所以学习该模式还是很有必要的。
该模式中存在一个或多个发布者,一个或多个订阅者,当发布者发布消息的时候,参与订阅的订阅者会收到对应的消息通知。其实核心原理就是使用一个集合来存储所有的订阅者类,当发布消息的时候遍历这个集合,并调用集合中的每一个订阅者类的通知方法。
下面以一段代码实现发布-订阅原理。
一、创建发布者
1、首先定义一个接口,所有的发布者都要实现该接口,该接口定义添加订阅者、发送消息、移除订阅者方法。
public interface IPublisher {
/** * 添加订阅者 */
void emit(ISubscriber subscriber);
/** * 触发消息 */
void on(String msg);
/** * 移除订阅者 */
void remove(ISubscriber subscriber);
}
2、创建发布者
这里以EventBus为例,实现发布者接口,并在该类中创建一个集合来添加存储订阅者。当发布消息的时候遍历该集合,调用订阅者的通知函数,将消息发送出去。
public class EventBus implements IPublisher {
// 定义一个集合来存储订阅者
private ArrayList events = new ArrayList<Subscriber>();
// 发布者名称
private String name;
// 创建发布者
public EventBus(String name) {
this.name = name;
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
下一篇
已是最新文章