php监听器,PHP事件监听器的最佳实践实现

嗯,从实现的角度来看,有三种不同的方法(注意这些是OO设计模式,但是如果你想要的话,你可以在功能上或程序上实现它们)。

观察者模式

你可以实现Observer Pattern.基本上,你会有每个事情,可以引发事件是一个主题。然后你想听的类/代码绑定到它想要听的具体。所以,假设你有一个名为Foo的控制器。如果你想听它,你可以调用$ fooController-> attach($ observer);.然后,每当控制器想说某事时,它会将事件分派给所有的观察者。

这真的很适合一个通知系统(扩展什么类正在做)。它不太适合实时修改代码的行为。

2.装饰模式

你也可以实现Decorator Pattern.基本上,你需要修改的对象,并“包装”在一个新的对象,你想要改变。这真的很适合修改和扩展的行为(因为你可以有选择地覆盖的功能从包类)。

如果你已经定义了接口并期望对象符合它们,这个工作非常好。如果你没有接口(或不正确地使用它们),装饰器模式可以为你做的大部分将丢失。

还要注意,这真的不是一个做事件的方式,它是一种修改对象行为的方式。

3.中介模式

你也可以使用一个Mediator.基本上,你有一个全局中介,跟踪你的监听器。当您要触发事件时,将事件发送到中介器。然后,中介器可以跟踪哪些监听对象想要接收该事件,并且正确地传递消息。

这具有中心的优点。意味着多个发送者可以发送相同的事件,并且对听众来说,它不会影响发送它的人…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值