PHP 观察者模式

//观察者模式有松耦合的特点
//当可观察的对象更改时,它会将消息发送到已注册的观察者。这些观察者使用该信息执行的操作与可观察的对象无关
<?php

abstract class EventGennerator{
	
	private $observes = array();
	
	function addObserver(Observer $observer){
		
			$this->observers[] = $observer;
	}
	
	function notify(){
		
				foreach($this->observers as $observer){
					
						$observer->update();
				}
		
		
	}
}

class Event extends EventGennerator{
	
			function trigger(){
				
				echo "Event";
				$this->notify();
			}
			
}

interface  Observer{
	
	function update($event_info = null);
}

class Observer1 implements Observer{
	
			function update($event_info = null ){
					echo "luoji1";
						
			}
}
class Observer2 implements Observer{
		function update($event_info = null){
			echo "luoji2";
		}
}

$event = new Event;
$event->addObserver(new Observer1);
$event->addObserver(new Observer2);
$event->trigger();


你可能感兴趣的:(设计模式,观察者)