Event Publisher/Subscriber Example
This program models event driven architecture.
Problem Statement
Write a Java program where Publisher sends events to Subscribers.
Source Code
| 1 | import java.util.*; |
| 2 | interface Subscriber { void update(String event); } |
| 3 | class Publisher { |
| 4 | List<Subscriber> subs=new ArrayList<>(); |
| 5 | void addSubscriber(Subscriber s){ subs.add(s); } |
| 6 | void publish(String event){ for(Subscriber s:subs) s.update(event); } |
| 7 | } |
| 8 | class ConcreteSubscriber implements Subscriber { |
| 9 | String name; |
| 10 | ConcreteSubscriber(String n){ name=n; } |
| 11 | public void update(String event){ System.out.println(name+" received event: "+event); } |
| 12 | } |
| 13 | public class EventDrivenBasic { |
| 14 | public static void main(String[] args) { |
| 15 | System.out.println("Eduinq Event Driven Basic"); |
| 16 | Publisher p=new Publisher(); |
| 17 | p.addSubscriber(new ConcreteSubscriber("Sub1")); |
| 18 | p.addSubscriber(new ConcreteSubscriber("Sub2")); |
| 19 | p.publish("OrderCreated"); |
| 20 | } |
| 21 | } |
Program Output
Eduinq Event Driven Basic Sub1 received event: OrderCreated Sub2 received event: OrderCreated
Explanation
Publisher emits events. - Subscribers react to events. - This models event driven architecture in enterprise systems. Conclusion: Shows event driven system example.