国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

設計模式系列之觀察者模式

Edison / 987人閱讀

本文從jdk內置的觀察者模式來介紹觀察者模式。
業務場景:當老師進門的時候,班長帶頭叫“老師好”,然后全班同學一起交“老師好”
因為太簡單,直接上代碼

班長繼承自Observable

package Observer;

import java.util.Observable;
import java.util.Observer;

public class Monitor extends Observable{
    public Monitor() {
        super();
    }

    @Override
    public synchronized void addObserver(Observer o) {
        super.addObserver(o);
    }

    @Override
    public synchronized void deleteObserver(Observer o) {
        super.deleteObserver(o);
    }

    @Override
    public void notifyObservers() {
        super.notifyObservers();
    }

    @Override
    public void notifyObservers(Object arg) {
        super.notifyObservers(arg);
    }

    @Override
    public synchronized void deleteObservers() {
        super.deleteObservers();
    }

    @Override
    protected synchronized void setChanged() {
        super.setChanged();
    }

    @Override
    protected synchronized void clearChanged() {
        super.clearChanged();
    }

    @Override
    public synchronized boolean hasChanged() {
        return super.hasChanged();
    }

    @Override
    public synchronized int countObservers() {
        return super.countObservers();
    }
}

學生繼承自Observer

package Observer;

import java.util.Observable;
import java.util.Observer;

/**
 * 觀察者
 */
public class Student implements Observer{
    String name;

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

    @Override
    public void update(Observable o, Object arg) {
        System.out.println("學生" + this.name + "說老師好");
    }
}

測試類:

package Observer;

public class Maintest {

    public static void main(String[] args) {
        Monitor monitor = new Monitor();

        Student student1 = new Student("小明");
        monitor.addObserver(student1);

        Student student2 = new Student("小藍");
        monitor.addObserver(student2);

        Student student3 = new Student("小白");
        monitor.addObserver(student3);

        // 只有設置了這個值才進行通知
        monitor.setChanged();
        // 班長通知所有學生老師來了,起立
        monitor.notifyObservers();
    }
}

結果:

學生小白說老師好
學生小藍說老師好
學生小明說老師好

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75027.html

相關文章

  • php設計模式

    摘要:我們今天也來做一個萬能遙控器設計模式適配器模式將一個類的接口轉換成客戶希望的另外一個接口。今天要介紹的仍然是創建型設計模式的一種建造者模式。設計模式的理論知識固然重要,但 計算機程序的思維邏輯 (54) - 剖析 Collections - 設計模式 上節我們提到,類 Collections 中大概有兩類功能,第一類是對容器接口對象進行操作,第二類是返回一個容器接口對象,上節我們介紹了...

    Dionysus_go 評論0 收藏0
  • php設計模式

    摘要:我們今天也來做一個萬能遙控器設計模式適配器模式將一個類的接口轉換成客戶希望的另外一個接口。今天要介紹的仍然是創建型設計模式的一種建造者模式。設計模式的理論知識固然重要,但 計算機程序的思維邏輯 (54) - 剖析 Collections - 設計模式 上節我們提到,類 Collections 中大概有兩類功能,第一類是對容器接口對象進行操作,第二類是返回一個容器接口對象,上節我們介紹了...

    vspiders 評論0 收藏0
  • JS設計模式Obeserver(察者模式、Publish/Subscribe(發布/訂閱)模式

    摘要:觀察者模式定義設計模式中對的定義一個對象稱為維持一系列依賴于它觀察者的對象,將有關狀態的任何變更自動通知給它們。如圖模式比較觀察者模式則多了一個類似于話題調度中心的流程,發布者和訂閱者解耦。 Obeserver(觀察者)模式 定義 《js設計模式》中對Observer的定義:一個對象(稱為subject)維持一系列依賴于它(觀察者)的對象,將有關狀態的任何變更自動通知給它們。 《設計模...

    荊兆峰 評論0 收藏0
  • js設計模式察者模式和發布/訂閱模式

    摘要:添加獲取長度獲取下標通知首先我們聲明一個主體類,里面包含一個觀察者數組,還有一些操作方法。觀察者通用聲明一個更新接口,用來獲取主體分發的通知。主體分發消息給觀察者。 觀察者模式 The Observer is a design pattern where an object (known as a subject) maintains a list of objects dependi...

    HitenDev 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<