// 观察者模式 主要分为被观察者,观察者
// 当一个对象(被观察者)状态发生变化时,依赖它的对象(观察者)全部会收到通知,并自动更新
// 观察者模式实现了低耦合,非侵入式的通知与更新机制
// 主题接口
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";
}
}
class Dog implements Observer{
public function watch(){
echo "dog";
}
}
class People implements Observer{
public function watch(){
echo "people";
}
}
// 应用实例
$action = new Action();
$action->register(new Cat());
$action->register(new Dog());
$action->register(new People());
$action->notify();
// 输出 cat dog people
php设计模式-观察者模式
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。