日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 观察者模式怎么用,php怎么实现观察者模式

發布時間:2025/3/15 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 观察者模式怎么用,php怎么实现观察者模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

php實現觀察者模式的方法:首先創建一個PHP示例文件;然后實現觀察者向主題注冊;最后對注冊樹進行遍歷,讓每個對象實現其接口提供的操作即可。

本文操作環境:windows7系統、PHP7.1版,DELL G3電腦

PHP實現觀察者模式

“觀察者模式”的觀察者三個字信息量很大。玩過很多網絡游戲的童鞋們應該知道,即便是斗地主,除了玩家,還有一個角色叫“觀察者"。在我們今天他談論的模式設計中,觀察者也是如此。首先,要有一個“主題”。只有有了一個主題,觀察者才能搬著小板凳兒聚在一堆。其次,觀察者還必須要有自己的操作。否則你聚在一堆兒沒事做也沒什么意義。

從面向過程的角度來看,首先是觀察者向主題注冊,注冊完之后,主題再通知觀察者做出相應的操作,整個事情就完了。

從面向對象的角度來看,主題提供注冊和通知的接口,觀察者提供自身操作的接口。(這些觀察者擁有一個同一個接口。)觀察者利用主題的接口向主題注冊,而主題利用觀察者接口通知觀察者。耦合度相當之低。

如何實現觀察者注冊?通過前面的注冊者模式很容易給我們提供思路,把這些對象加到一棵注冊樹上就好了嘛。如何通知?這就更簡單了,對注冊樹進行遍歷,讓每個對象實現其接口提供的操作<?php

// 主題接口

interface Subject{

public function register(Observer $observer);

public function notify();

}

// 觀察者接口

interface Observer{

public function watch();

}

// 主題

class Action implements Subject{

public $_observers=array();

public function register(Observer $observer){

$this->_observers[]=$observer;

}

public function notify(){

foreach ($this->_observers as $observer) {

$observer->watch();

}

}

}

// 觀察者

class Cat implements Observer{

public function watch(){

echo "Cat watches TV


";

}

}

class Dog implements Observer{

public function watch(){

echo "Dog watches TV


";

}

}

class People implements Observer{

public function watch(){

echo "People watches TV


";

}

}

// 應用實例

$action=new Action();

$action->register(new Cat());

$action->register(new People());

$action->register(new Dog());

$action->notify();

【推薦學習:《PHP視頻教程》】

新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的php 观察者模式怎么用,php怎么实现观察者模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。