喜歡就關注,支持我,謝謝
前言
今天我們開始一起聊一聊關於行為型設計模式-觀察者模式。
內容概要:
1、什麼是觀察者模式
2、UML圖
3、優點
4、怎麼實現觀察者模式+代碼示例
一、什麼是觀察者模式
當一個對象狀態發生改變時,依賴它的對象全部會受到通知,並自動更新。這裡涉及四個角色,分別是:
1、抽象主題角色:首先它是一個接口,負責提供增加和刪除觀察者對象,其次,它保存了所有的對象引用,對觀察者的引用。每一個主題可以有多個觀察者。
2、具體主題:它是一個具體子類的實現,存儲具體觀察者對象的相關狀態,當具體主題內部狀態改變,給觀察者通知。
3、抽象觀察者:首先,他是一個接口,規定觀察者必須實現的方法,並在觀察主題發生改變時,將自己某些狀態進行更新。
4、具體觀察者:粗出具體主題對象和相關的狀態,實現抽象觀察者的接口,並實現update方法,使其自身狀態與主題狀態同步。
二、UML圖
三、優點:
低耦合,非侵入式編碼,更新更方便
觀察者和主題之間的耦合度較小;
這一節,我不舉例子,有問題,我們評論上見,哈哈。
四、怎麼實現觀察者模式 代碼示例
不廢話,上PHP代碼:
相關推薦
'MVP設計模式在安卓編程中的應用'
"大家好,這一期呢,我們來談一下MVP設計模式在安卓編程中的應用。Mvp就是model view presenter。它來源於經典的mvc設計模式。Mvc設計模式可以說是最被廣泛使用的設計模式之一了。先說一下為什麼要使用mvp?我們都知道在安卓編程中activity是既有...
'一線互聯網Java崗面試題:Spring中用了哪些設計模式?引發的深思'
"作者:Java填坑之路原文鏈接:https://www.yidianzixun.com/article/0LJMfx3B前言設計模式作為工作學習中的枕邊書,卻時常處於勤說不用的尷尬境地,也不是我們時常忘記,只是一直沒有記憶。Spring作為業界的經典框架,無論是在架構設計...
'《細說PHP》第四版 樣章 第18章 數據庫抽象層PDO 7'
" 18.6 PDO對預處理語句的支持 在生成網頁時,許多PHP腳本通常都會執行除參數外其他部分完全相同的查詢語句。針對這種重複執行一個查詢,但每次迭代使用不同參數的情況,PDO提供了一種名為預處理語句(Prepared Statement)的機制,如圖18-6所示。它...
'單例模式-個人理解'
"單例模式單例模式(Singleton Pattern)是Java中最簡單的設計模式之一。屬於創建型模式,(單例模式、工廠方法模式、抽象工廠模式、建造者模式、原型模式),它提供了一種創建對象的最佳方式。這種模式涉及到單一的類,該類負責創建自己的對象,同時確保只有單個對象被創...
'JavaScript設計模式之工廠模式(Factory Method Pattern)'
"什麼是工廠模式?工廠模式是用來創建對象的一種最常用的設計模式。我們不暴露創建對象的具體邏輯,而是將將邏輯封裝在一個函數中,那麼這個函數就可以被視為一個工廠。工廠模式根據抽象程度的不同可以分為:簡單工廠,工廠方法和抽象工廠。如果只接觸過JavaScript這門語言的的人可能...
'「php框架實例」| Laravel之Model Observer模型'
"本文主要學習下Laravel的Model Observer模型觀察者,小編把自己的一點點經驗分享出來希望對別人能有幫助。同時,作者會將開發過程中的一些截圖和代碼黏上去,提高閱讀效率。開發環境:Laravel5.1+MAMP+PHP7+MySQL5.5沒有Model Obs...
'72、php Event庫介紹'
"之所以要介紹Event庫,而不是libevent。是因為libevent目前只支持php7以下.考慮到php7也發佈。因此,這裡採用Event庫進行介紹。Event庫是個有效地調度I/O、時間和基於信號的事件的擴展,不支持window平臺。跟libevent差不多。只不過...
PHP
2019-08-10
推薦中...