The observer pattern in the Java framework defines behavior through interfaces and abstract classes (1); Subject and Observer classes implement management and response behavior (2); Subject provides subscription and cancellation methods, maintains observer collections, and notifies observers (3). In the example, Subject manages observers and triggers events (4), and ConcreteObserver responds to events (5).
How to implement the observer pattern in the Java framework
The observer pattern is a design pattern that allows objects to subscribe and detect Listen to events from other objects. When a subscribed object changes state, it notifies all subscribed objects.
In the Java framework, the observer pattern is usually implemented in the following ways:
1. Interfaces and abstract classes
2. Subject and Observer classes
Observable
interface or extensionObservable
Abstract class and provides observer management functions. Observer
interface or extends the Observer
abstract class and defines the logic to respond to events. 3. Bind Subject and Observer
Practical case
Using the Java framework, we can implement the observer pattern through the following example:
// Observable 接口表示观察者管理功能 public interface Observable { void addObserver(Observer observer); void removeObserver(Observer observer); void notifyObservers(); } // 抽象 Observer 类定义被调用的方法 public abstract class Observer { public abstract void update(); } // Subject 类实现 Observable 接口 public class Subject implements Observable { private List<Observer> observers = new ArrayList<>(); @Override public void addObserver(Observer observer) { observers.add(observer); } @Override public void removeObserver(Observer observer) { observers.remove(observer); } @Override public void notifyObservers() { for (Observer observer : observers) { observer.update(); } } } // ConcreteObserver 类实现 Observer 接口 public class ConcreteObserver extends Observer { @Override public void update() { // 响应事件的逻辑 } } // Main 类用于测试 public class Main { public static void main(String[] args) { Subject subject = new Subject(); Observer observer1 = new ConcreteObserver(); Observer observer2 = new ConcreteObserver(); subject.addObserver(observer1); subject.addObserver(observer2); // 触发事件 subject.notifyObservers(); } }
In this example, Subject
The class is an observable object and provides observer management functions. ConcreteObserver
The class is a concrete observer that defines the logic of responding to events. When an event occurs on the Subject
object, it will notify all registered observers and trigger actions in response to the event.
The above is the detailed content of What are the implementation methods of observer pattern in java framework?. For more information, please follow other related articles on the PHP Chinese website!