91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java監聽者模式怎么實現

小億
106
2023-12-12 15:22:14
欄目: 編程語言

在Java中實現觀察者模式,需要定義兩個角色:觀察者(Observer)和被觀察者(Subject)。觀察者可以注冊到被觀察者,當被觀察者狀態發生變化時,觀察者會收到通知并進行相應的處理。

以下是一個簡單的示例代碼,演示如何實現觀察者模式:

import java.util.ArrayList;
import java.util.List;

// 觀察者接口
interface Observer {
    void update(String message);
}

// 被觀察者接口
interface Subject {
    void registerObserver(Observer observer);
    void removeObserver(Observer observer);
    void notifyObservers();
}

// 具體的觀察者類
class ConcreteObserver implements Observer {
    private String name;

    public ConcreteObserver(String name) {
        this.name = name;
    }

    @Override
    public void update(String message) {
        System.out.println(name + " received message: " + message);
    }
}

// 具體的被觀察者類
class ConcreteSubject implements Subject {
    private List<Observer> observers = new ArrayList<>();
    private String message;

    @Override
    public void registerObserver(Observer observer) {
        observers.add(observer);
    }

    @Override
    public void removeObserver(Observer observer) {
        observers.remove(observer);
    }

    @Override
    public void notifyObservers() {
        for (Observer observer : observers) {
            observer.update(message);
        }
    }

    public void setMessage(String message) {
        this.message = message;
        notifyObservers();
    }
}

public class Main {
    public static void main(String[] args) {
        ConcreteObserver observer1 = new ConcreteObserver("Observer 1");
        ConcreteObserver observer2 = new ConcreteObserver("Observer 2");

        ConcreteSubject subject = new ConcreteSubject();
        subject.registerObserver(observer1);
        subject.registerObserver(observer2);

        subject.setMessage("Hello World!");
    }
}

在上述代碼中,ConcreteObserver實現了Observer接口,并實現了update方法,用于接收被觀察者的消息。ConcreteSubject實現了Subject接口,實現了注冊觀察者、移除觀察者和通知觀察者的方法。被觀察者狀態發生變化時,調用notifyObservers方法通知所有觀察者。

Main類中,創建了兩個觀察者observer1observer2,以及一個被觀察者subject。將觀察者注冊到被觀察者后,調用setMessage方法改變被觀察者的狀態,觀察者將收到相應的通知并輸出消息。

以上就是一個簡單實現觀察者模式的示例代碼,你可以根據自己的需求進行修改和擴展。

0
浮山县| 望都县| 绥滨县| 仁布县| 浪卡子县| 昌邑市| 衡阳市| 锡林浩特市| 措勤县| 萍乡市| 乃东县| 来安县| 鄱阳县| 安多县| 西盟| 吉林市| 仪征市| 四会市| 八宿县| 阳高县| 万安县| 开化县| 梧州市| 应城市| 永春县| 赤峰市| 隆德县| 永德县| 清丰县| 上杭县| 张家口市| 盐津县| 潮安县| 金山区| 吴旗县| 六枝特区| 屯昌县| 井冈山市| 宁陕县| 宁津县| 定结县|