亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

Java觀察者模式的實現方法是什么

小億
76
2023-10-23 10:57:40
欄目: 編程語言

Java觀察者模式的實現方法如下:

  1. 定義觀察者接口(Observer):觀察者接口定義了觀察者對象的更新方法,通常包括一個update()方法來接收被觀察者的通知。

  2. 定義被觀察者接口(Subject):被觀察者接口定義了被觀察者的行為,包括添加、刪除和通知觀察者的方法。

  3. 實現觀察者類(具體觀察者):實現觀察者接口的類,具體的觀察者類可以根據需要進行擴展。

  4. 實現被觀察者類(具體被觀察者):實現被觀察者接口的類,具體的被觀察者類通常需要維護一個觀察者列表,并實現添加、刪除和通知觀察者的方法。

  5. 在具體被觀察者類中實現通知方法:在具體被觀察者類中實現通知方法,通常在該方法中遍歷觀察者列表,調用每個觀察者的更新方法。

  6. 在客戶端中使用觀察者模式:在客戶端中創建具體的觀察者和被觀察者對象,并進行相應的操作。

示例代碼如下:

// 定義觀察者接口
interface Observer {
    void update();
}

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

// 實現觀察者類
class ConcreteObserver implements Observer {
    @Override
    public void update() {
        System.out.println("Observer is notified");
    }
}

// 實現被觀察者類
class ConcreteSubject implements Subject {
    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();
        }
    }
}

public class Main {
    public static void main(String[] args) {
        ConcreteSubject subject = new ConcreteSubject();
        ConcreteObserver observer1 = new ConcreteObserver();
        ConcreteObserver observer2 = new ConcreteObserver();

        subject.addObserver(observer1);
        subject.addObserver(observer2);

        subject.notifyObservers();
    }
}

運行以上代碼會輸出:

Observer is notified
Observer is notified

說明觀察者模式成功地將被觀察者的通知傳遞給了觀察者。

0
商洛市| 蒲江县| 台南市| 榆树市| 云浮市| 凤山县| 北安市| 阜新| 兴宁市| 砀山县| 鹤庆县| 个旧市| 乌兰浩特市| 黄梅县| 汉中市| 甘孜| 永安市| 青神县| 大关县| 双桥区| 白银市| 中西区| 马边| 墨竹工卡县| 昔阳县| 万荣县| 彭阳县| 顺平县| 西安市| 荥阳市| 龙江县| 伽师县| 亚东县| 大丰市| 玛纳斯县| 剑河县| 枝江市| 三河市| 洪雅县| 常德市| 恭城|