搜尋
首頁常見問題觀察者模式是什麼?

觀察者模式是什麼?

Jun 28, 2020 pm 04:12 PM
php

觀察者模式是一種物件行為模式,該模式定義物件間的一種一對多的依賴關係,當一個物件的狀態改變時,所有依賴它的物件都被通知並被自動更新,從而提高了應用程式的可維護性和重用性。

觀察者模式是什麼?

觀察者模式是一種物件行為模式。它定義物件間的一種一對多的依賴關係,當一個物件的狀態改變時,所有依賴它的物件都會被通知並被自動更新。在觀察者模式中,主題是通知的發布者,它發出通知時並不需要知道誰是它的觀察者,可以有任意數量的觀察者訂閱並接收通知。觀察者模式不僅被廣泛應用於軟體介面元素之間的交互,在業務物件之間的交互、權限管理等方面也有廣泛的應用。

觀察者模式(Observer)完美的將觀察者和被觀察的物件分離開。舉個例子,使用者介面可以作為一個觀察者,業務資料是被觀察者,使用者介面觀察業務資料的變化,發現資料變化後,就顯示在介面上。物件導向設計的一個原則是:系統中的每個類別將重點放在某一個功能上,而不是其他方面。一個物件只做一件事情,並且將他做好。觀察者模式在模組之間劃定了清晰的界限,提高了應用程式的可維護性和重用性。

觀察者設計模式定義了物件間的一種一對多的組合關係,以便當一個物件的狀態發生變化時,所有依賴它的物件都會被通知並自動刷新。

觀察者模式實現方式

觀察者模式有很多實現方式,從根本上說,該模式必須包含兩個角色:觀察者和被觀察對象。在剛才的例子中,業務資料是被觀察對象,使用者介面是觀察者。觀察者和被觀察者之間存在著「觀察」的邏輯關聯,當被觀察者發生改變的時候,觀察者就會觀察到這樣的變化,並且做出相應的反應。如果在使用者介面、業務資料之間使用這樣的觀察過程,可以確保介面和資料之間劃清界限,假定應用程式的需求發生變化,需要修改介面的表現,只需要重新建構一個使用者介面,業務數據不需要發生變化。

觀察者模式使用場景

1、當一個抽像模型有兩個面向,其中一個面向依賴另一方面。將這二者封裝在獨立的物件中以使它們可以各自獨立地改變和重複使用。

2、當對一個對象的改變需要同時改變其他對象,而不知道具體有多少對象需要被改變。

3、當一個對象必須通知其他對象,而它又不能假定其他對像是誰。換言之,不希望這些物件是緊密耦合的。

推薦教學:《PHP教學

#

以上是觀察者模式是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。