本文從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
摘要:我們今天也來做一個萬能遙控器設計模式適配器模式將一個類的接口轉換成客戶希望的另外一個接口。今天要介紹的仍然是創建型設計模式的一種建造者模式。設計模式的理論知識固然重要,但 計算機程序的思維邏輯 (54) - 剖析 Collections - 設計模式 上節我們提到,類 Collections 中大概有兩類功能,第一類是對容器接口對象進行操作,第二類是返回一個容器接口對象,上節我們介紹了...
摘要:觀察者模式定義設計模式中對的定義一個對象稱為維持一系列依賴于它觀察者的對象,將有關狀態的任何變更自動通知給它們。如圖模式比較觀察者模式則多了一個類似于話題調度中心的流程,發布者和訂閱者解耦。 Obeserver(觀察者)模式 定義 《js設計模式》中對Observer的定義:一個對象(稱為subject)維持一系列依賴于它(觀察者)的對象,將有關狀態的任何變更自動通知給它們。 《設計模...
摘要:添加獲取長度獲取下標通知首先我們聲明一個主體類,里面包含一個觀察者數組,還有一些操作方法。觀察者通用聲明一個更新接口,用來獲取主體分發的通知。主體分發消息給觀察者。 觀察者模式 The Observer is a design pattern where an object (known as a subject) maintains a list of objects dependi...
閱讀 1565·2021-10-25 09:44
閱讀 2926·2021-09-04 16:48
閱讀 1543·2019-08-30 15:44
閱讀 2475·2019-08-30 15:44
閱讀 1731·2019-08-30 15:44
閱讀 2816·2019-08-30 14:14
閱讀 2964·2019-08-30 13:00
閱讀 2143·2019-08-30 11:09