栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PHP Event-Listener最佳实践实现

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP Event-Listener最佳实践实现

嗯,从实现角度看,确实有三种不同的方法可以做到这一点(请注意,这些是面向对象的设计模式,但是您可以根据需要在功能上或过程上实现它们)。

1.观察者模式

您可以实现观察者模式。基本上,您会将可以引发事件的所有事情作为主题。然后,您要侦听的类/代码将绑定到其要侦听的内容。假设您有一个名为的控制器

Foo
。如果您想听,可以致电
$fooController->attach($observer);
。然后,无论何时控制器想要说些什么,它都会将事件分派给所有观察者。

这确实非常适合于通知系统(以扩展类的功能)。它不太适合实时修改代码的行为。

2.装饰器模式
您还可以实现装饰器模式。基本上,您将要修改的对象放入“对象”,然后将其“包装”到一个您要更改的新对象中。这确实非常适合于修改和扩展行为(因为您可以从包装的类中选择性地覆盖功能)。

如果您已定义接口并期望对象符合它们,那么这将非常有效。如果您没有接口(或没有正确使用它们),那么装饰器模式可以为您做的大部分事情都会丢失。

还要注意,这实际上不是做事件的方式,而是修改对象行为的方式。

3.中介者模式

您也可以使用调解器。基本上,您将有一个全球调解员来跟踪您的听众。当您想触发事件时,可以将事件发送给调解器。然后,调解员可以跟踪哪些侦听对象想要接收该事件,并正确传递消息。

这具有居中的优势。意味着多个发件人可以发送相同的事件,而发送给侦听器的发送者却没有区别…



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/465915.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号