Observer Design Pattern.
Observer Design Pattern is used to notify interested Observers on any change to subject.
SocialMediaNotifier and SubscribedUserNotifier will update post to necessary places.
Observer : SocialMediaNotifier, SubscribedUserNotifier
Subject : Blog post.
Observer.java
Observer Design Pattern Example In Java.
In our example we will notify SocialMediaNotifier and SubscribedUserNotifier whenever a new post is published on JavaByPatel blog.SocialMediaNotifier and SubscribedUserNotifier will update post to necessary places.
Observer : SocialMediaNotifier, SubscribedUserNotifier
Subject : Blog post.
Observer.java
interface Observer{
void notify(String post);
}
SocialMediaNotifier.java
class SocialMediaNotifier implements Observer{
@Override
public void notify(String post) {
System.out.println("SocialMediaNotifier: New post published :"+post);
}
}
SubscribedUserNotifier.java
class SubscribedUserNotifier implements Observer{
@Override
public void notify(String post) {
System.out.println("SubscribedUserNotifier: New post published :"+post);
}
}
Subject.java
interface Subject{
void addObserver(Observer observer);
void removeObserver(Observer observer);
void notifyObservers();
}
JavaByPatelBlogPost.javaclass JavaByPatelBlogPost implements Subject{
private String post;
private List<Observer> listOfObserver = new ArrayList<Observer>();
@Override
public void addObserver(Observer observer) {
listOfObserver.add(observer);
}
@Override
public void removeObserver(Observer observer) {
listOfObserver.remove(observer);
}
@Override
public void notifyObservers() {
for (Observer observer : listOfObserver) {
observer.notify(post);
}
}
public void newPost(String post) {
this.post = post;
notifyObservers();
}
}
ObserverDesignPattern.javapublic class ObserverDesignPattern {
public static void main(String[] args) {
SocialMediaNotifier socialMediaNotifier = new SocialMediaNotifier();
SubscribedUserNotifier subscribedUserNotifier = new SubscribedUserNotifier();
JavaByPatelBlogPost blogPost = new JavaByPatelBlogPost();
blogPost.addObserver(socialMediaNotifier);
blogPost.addObserver(subscribedUserNotifier);
blogPost.newPost("HelloPost");
}
}
You may also like to see
Decorator Design Pattern
Adapter Design Pattern
When to use Builder design pattern
Command Design Pattern
Enjoy !!!!
If you find any issue in post or face any error while implementing, Please comment.






Post a Comment