摘要:觀察者模式一觀察者模式定義定義對象間一種一對多的依賴關系,使得當每一個對象改變狀態,則所有依賴于他的對象都會得到通知,并自動更新角色抽象觀察者角色抽象被觀察者角色具體觀察者角色具體被觀察者角色模式拉模式只通知是否變化而沒有具體細節推模式會通
觀察者模式
一. 觀察者模式 1.1 定義定義對象間一種一對多的依賴關系,使得當每一個對象改變狀態,則所有依賴于他的對象都會得到通知,并自動更新.
1.2 角色抽象觀察者角色(IObserver).
抽象被觀察者角色(ISubject).
具體觀察者角色(Observer).
具體被觀察者角色(Subject).
1.3 模式拉模式:只通知是否變化而沒有具體細節.
推模式:會通知具體細節.
二. 具體實現 2.1 創建觀察者抽象接口public interface IObserver { void update(); }2.2 創建具體觀察者
public class ObserverA implements IObserver { @Override public void update() { System.out.println("ObserverA update ..."); } } public class ObserverB implements IObserver { @Override public void update() { System.out.println("ObserverB update ..."); } }2.3 創建被觀察者對象
public class Subject { List2.4 調用observerList = new ArrayList<>(); public void addObserver(IObserver observer){ if(!observerList.contains(observer)){ observerList.add(observer); } } public void change (){ System.out.println("Subject change ..."); notifyObservers(); } public void notifyObservers(){ for(IObserver observer : observerList){ observer.update(); } } }
public static void main(String[] args) { Subject subject = new Subject(); IObserver observerA = new ObserverA(); IObserver observerB = new ObserverB(); subject.addObserver(observerA); subject.change(); subject.addObserver(observerB); subject.change(); }2.5 輸出
Subject change ... ObserverA update ... Subject change ... ObserverA update ... ObserverB update ...三. 優缺點 3.1 優點
觀察者與被觀察者抽象耦合,容易擴展.
建立了一套觸發機制.
3.2 缺點循環依賴會導致系統崩潰.
觀察者太多會浪費時間.
四. 源碼https://github.com/Seasons20/DisignPattern.git
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69682.html
摘要:時間年月日星期二說明本文部分內容均來自慕課網。慕課網教學源碼學習源碼第一章觀察者模式概述課程簡介觀察者模式的定義定義對象間的一種一對多的依賴關系。 時間:2017年08月29日星期二說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學源碼:https://github.com/zccodere/s...學習源碼:https://github.com/z...
摘要:三內置觀察者模式了解內置觀察者模式包內包含最基本的類與接口,這和上面的接口與接口很類似。根據具體的需求,如果內置的觀察者模式不能滿設計,那么我們可以像剛開始那樣自己實現一套觀察者模式。參考資料設計模式 一、了解觀察者模式 1.1 什么是觀察者模式 觀察者模式定義了對象之間的一對多依賴,這樣一來,當一個對象狀態改變時,它的所有依賴者都會收到通知并自動更新。 典型的問題比如報社,只要你是他...
摘要:觀察者模式定義設計模式中對的定義一個對象稱為維持一系列依賴于它觀察者的對象,將有關狀態的任何變更自動通知給它們。如圖模式比較觀察者模式則多了一個類似于話題調度中心的流程,發布者和訂閱者解耦。 Obeserver(觀察者)模式 定義 《js設計模式》中對Observer的定義:一個對象(稱為subject)維持一系列依賴于它(觀察者)的對象,將有關狀態的任何變更自動通知給它們。 《設計模...
摘要:簡介觀察者模式是行為型模式的一種,它定義了對象之間一種一對多的依賴關系,當一個對象發生改變時,依賴它的所有對象會被通知并且自動更新,它符合對象之間松耦合的設計原則。具體觀察者各自實現接口方法,可以及時得到通知并更新。 1. 簡介 ??觀察者模式(Observer)是行為型模式的一種,它定義了對象之間一種一對多的依賴關系,當一個對象發生改變時,依賴它的所有對象會被通知并且自動更新,它符合...
摘要:觀察者模式是一種使用頻率非常高的設計模式,無論是移動應用應用或者桌面應用,觀察者模式幾乎無處不在,它為實現對象之間的聯動提供了一套完整的解決方案,凡是涉及到一對一或者一對多的對象交互場景都可以使用觀察者模式。 觀察者模式(Observer Pattern)屬于對象行為型模式的一種,定義對象之間的一種一對多依賴關系,使得每當一個對象狀態發生改變時,其相關依賴對象皆得到通知并被自動更新。 ...
摘要:觀察者模式觀察者模式也可以成為發布訂閱模式,此模式是對象之間的模式,對象之間呈現一種一對多的關系。其中的一是被觀察者,多是觀察者,故被觀察者不能產生多個對象,只能有一個對象供觀察者觀察,所以在寫被觀察者的時候,需要使用到單例模式。 觀察者(Observer)模式 觀察者(Observer)模式 也可以成為發布訂閱模式,此模式是對象之間的模式,對象之間呈現一種一對多的關系。其中的一是被觀...
閱讀 689·2023-04-25 19:53
閱讀 4262·2021-09-22 15:13
閱讀 2565·2019-08-30 10:56
閱讀 1320·2019-08-29 16:27
閱讀 2932·2019-08-29 14:00
閱讀 2407·2019-08-26 13:56
閱讀 426·2019-08-26 13:29
閱讀 1611·2019-08-26 11:31