Definition: When there is a one-to-many relationship between objects, the Observer pattern is used. For example, when an object is modified, its dependent object will be automatically notified.
Features:
1. The observer and the observer are abstractly coupled.
2. Establish a set of triggering mechanisms.
Applications in enterprise-level development and common frameworks: Java comes with observer class, filter in servlets, distributed message queues
Example:
public class Demo { public static void main(String[] args) { ActualSubject subject = new ActualSubject(); ObserverA o1 = new ObserverA(); ObserverA o2 = new ObserverA(); ObserverA o3 = new ObserverA(); //Subscribe to the message subject.addObserver(o1); subject.addObserver(o2); subject.addObserver(o3); subject.setNews("The weather is so good today"); }}/** * Observer interface*/interface Observer{ public void update(Subject subject);}/** * Target object, broadcast object*/class Subject{ private List<Observer> list = new ArrayList<>(); public void addObserver(Observer o){ list.add(o); } public void removeObserver(Observer o){ list.remove(o); } public void notifyAllObserver(){ for(Observer o:list){ o.update(this); } }}class ActualSubject extends Subject{ private String news; public void setNews(String news) { this.news = news; System.out.println("I am a broadcast, I sent a message"); notifyAllObserver(); } public String getNews() { return news; }}class ObserverA implements Observer{ private String news; public void update(Subject subject) { setNews((((ActualSubject)subject).getNews()); System.out.println("I am an observer, I receive a message from a broadcast I subscribe to, and I will respond to it next"); System.out.println(getNews()); } public String getNews() { return news; } public void setNews(String news) { this.news = news; }}The above is all the content of this article. I hope it will be helpful to everyone's learning and I hope everyone will support Wulin.com more.