发布订阅模式

发布订阅模式,英文名Publish Subscribe Pattern

该模式通过一个中间调度者,将发布者发布的动态,转发给订阅者

它和观察者模式在功能上非常相似,不同的地方在于

观察者模式是由Observable直接通知Observer

而发布订阅模式则有一个扮演调度中心角色的中介者,专门负责转发事件通知

在这里插入图片描述
实现代码


	public class EventBus {
	
	    Map<String, List<Subscriber>> subscriberMap;
	
	    //订阅事件
	    public void subscribe(Subscriber subscriber, String eventType) {
	        List<Subscriber> subscribers = subscriberMap.get(eventType);
	        subscribers.add(subscriber);
	    }
	
	    //发布事件
	    public void publish(String eventType, Object event) {
	        List<Subscriber> subscribers = subscriberMap.get(eventType);
	        for (Subscriber subscriber : subscribers)
	            subscriber.onEvent(eventType, event);
	    }
	}



	public class Subscriber {
	
	    public void onEvent(String eventType, Object event) {
	        if (eventType.equals("onTimeChange"))
	            System.out.println("Current Time " + event);
	    }
	}


	public class Publisher {
	
	    Long time;
	
	    public void updateTime() {
	        time = System.currentTimeMillis();
	    }
	}


	public class APP {
	
	    public static void main(String... args) {
	        EventBus eventBus = new EventBus();
	        Subscriber subscriber = new Subscriber();
	        Publisher publisher = new Publisher();
	        //订阅动态
	        eventBus.subscribe(subscriber, "onTimeChange");
	        //更新动态
	        publisher.updateTime();
	        //发布动态
	        eventBus.publish("onTimeChange", publisher.time);
	    }
	}

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐