Java实现发布订阅模式

Java (2) 2024-05-18 20:23

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;
   

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

下一篇

已是最新文章

发表回复