Basic Observer Example

This program demonstrates Observer pattern.

Problem Statement

Write a Java program where Subject notifies Observers.

Source Code

1 import java.util.*;
2 interface Observer { void update(String msg); }
3 class Subject {
4 List<Observer> obs=new ArrayList<>();
5 void addObserver(Observer o){ obs.add(o); }
6 void notifyObservers(String msg){
7 for(Observer o:obs) o.update(msg);
8 }
9 }
10 class ConcreteObserver implements Observer {
11 String name;
12 ConcreteObserver(String n){ name=n; }
13 public void update(String msg){ System.out.println(name+" received: "+msg); }
14 }
15 public class ObserverBasic {
16 public static void main(String[] args) {
17 System.out.println("Eduinq Observer Basic");
18 Subject s=new Subject();
19 s.addObserver(new ConcreteObserver("Obs1"));
20 s.addObserver(new ConcreteObserver("Obs2"));
21 s.notifyObservers("Hello Observers");
22 }
23 }

Program Output

Eduinq Observer Basic
Obs1 received: Hello Observers
Obs2 received: Hello Observers

Explanation

Subject maintains list of observers. - Observers notified when state changes. - This decouples subject from observers, promoting scalability. Conclusion: Shows how to implement Observer pattern.

Quick Links to Explore