观察者模式,观察者模式类图
观察者模式
<?<span>php </span><span>//</span><span>定义观察者调用接口</span> <span>class</span><span> transfer{ </span><span>protected</span> <span>$_observers</span> = <span>array</span><span>(); </span><span>//</span><span>注册对象</span> <span>public</span> <span>function</span> register(<span>$sub</span><span>){ </span><span>$this</span>->_observers[] = <span>$sub</span><span>; } </span><span>//</span><span>外部统一调用</span> <span>public</span> <span>function</span><span> trigger(){ </span><span>if</span>(!<span>empty</span>(<span>$this</span>-><span>_observers)){ </span><span>foreach</span>(<span>$this</span>->_observers <span>as</span> <span>$observer</span><span>){ </span><span>$observer</span>-><span>update(); } } } } </span><span>//</span><span>观察者接口</span> <span>interface</span><span> obserable{ </span><span>public</span> <span>function</span><span> update(); } </span><span>//</span><span>实现观察者</span> <span>class</span> listen <span>implements</span><span> obserable{ </span><span>public</span> <span>function</span><span> update(){ </span><span>echo</span> 'now first time you need to do listen<br/>'<span>; } } </span><span>class</span> read <span>implements</span><span> obserable{ </span><span>public</span> <span>function</span><span> update(){ </span><span>echo</span> 'now first time you need to read<br/>'<span>; } } </span><span>class</span> speak <span>implements</span><span> obserable{ </span><span>public</span> <span>function</span><span> update(){ </span><span>echo</span> 'now first time you need to speak<br/>'<span>; } } </span><span>class</span> write <span>implements</span><span> obserable{ </span><span>public</span> <span>function</span><span> update(){ </span><span>echo</span> 'now first time you need to write<br/>'<span>; } } </span><span>$transfer</span> = <span>new</span><span> transfer(); </span><span>$transfer</span>->register(<span>new</span><span> listen()); </span><span>$transfer</span>->register(<span>new</span><span> read()); </span><span>$transfer</span>->register(<span>new</span><span> speak()); </span><span>$transfer</span>->register(<span>new</span><span> write()); </span><span>$transfer</span>-><span>trigger(); </span>
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影:貝殼謎語解決方案
3 週前ByDDD
Windows 11 KB5054979中的新功能以及如何解決更新問題
2 週前ByDDD
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版
中文版,非常好用

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

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具