Java 框架中的觀察者模式透過介面和抽象類別定義行為(1);Subject 和Observer 類別實作管理和回應行為(2);Subject 提供訂閱和註銷方法,維護觀察者集合,並通知觀察者(3)。在範例中,Subject 管理觀察者並觸發事件(4),ConcreteObserver 回應事件(5)。
Java 框架中的觀察者模式實作方式
觀察者模式是一種設計模式,允許物件訂閱並偵聽其他對象的事件。當被訂閱的物件發生狀態變更時,它會通知所有已訂閱的物件。
在Java 框架中,觀察者模式通常透過以下方式實作:
1. 介面與抽象類別
2. Subject 和Observer 類別
Observable
# 介面或擴充Observable
抽象類,並提供觀察者管理功能。 Observer
介面或擴充 Observer
抽象類,並定義要回應事件的邏輯。 3. 綁定 Subject 和 Observer
實戰案例
使用Java 框架,我們可以透過以下範例實作觀察者模式:
// 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(); } }
在這個範例中,Subject
類別是可觀察的對象,提供觀察者管理功能。 ConcreteObserver
類別是具體觀察者,定義了回應事件的邏輯。當 Subject
物件發生事件時,它會通知所有已註冊的觀察者,觸發回應事件的動作。
以上是java框架中觀察者模式的實作方式有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!