PHP观察者模式

观察者模式是PHP设计模式中常用的一种,常用来解耦,一般情况下,会用到3个SPL接口:SplSubjectSplObserverSplObjectStorage,这三个接口的详细介绍可以参考PHP手册,我们这里只是使用,也有很多是自己实现观察者模式,没有用到SPL库的,这里暂且不谈。

先解释一下我理解里的观察者模式是怎么回事:顾名思义,像一个观察者一样,开始观察某个东西A的时候,当A发生某些改变之后,观察者可以做出相应的反应。比如我们常见的微信公众号,我们关注一个微信公众号的之后,每当这个公众号发布新文章的时候,微信服务器就会把这个文章推送给每一个关注的人,这就是微信服务器利用类似观察者模式,观察到公众号发布了新文章,就做出了相应的反应(把文章推给关注者)。

我们来看一下一个实例代码,这个是一个下订单,下单后记录日志、给用户和商城管理者发送邮件的过程,有点长,请耐心仔细看代码逻辑与注释:

上面的代码与注释已经很详细了,其他就不在详述了。