小邓博客,一位正在奋斗的PHP开发工程师的学习经历分享!为高效PHP开发而努力奋斗

观察者模式

WEB项目 dengwz7788 503℃ 0评论

前提:

之前的一家公司,因为人手紧缺就让学JAVA的同学转行来写PHP。

过程:

我维护代码的时候,发现里面有很多Listener方法。开始一直以为只是编写命名规范而已,然后才知道是设计模式

疑惑:

这种设计模式有什么意义?


要想知道,为什么这么写,就想要知道这种设计模式是怎么实现的,它存在的意义。观察者模式的定义,我这里就不复述了。

观察者模式

观察者模式

 

这个图是我从别人代码里面解读出来对观察者模式的理解,该模式的核心是监听。跟Jquery里面的On()绑定事件类似

然后查阅了一些资料。了解到,这种观察者模式,一点是用接口类来实现。当然传统的继承也可以实现类是的方法。但观察者模式还有一个核心:去耦合

代码网上一找一大把,但我一直以为我写的是技术博客的宗旨,不贴点代码好像有点说不过去。但我看别人代码的是发现了另一个东西 SplObserver 

这个是PHP的迭代器,之前我也有提到过,这是PHP提供的抽象类,提供一些使用有高效的处理方法的东西,传送门

SplObserver {
        abstract public void update ( SplSubject $subject ) //一个更新的抽象接口 ,作用只是用来更新被监听者列表
}

 

总结:

观察者模式的好处在于耦合逻辑分类,一对多。开发人员并不需要关注后续操作太大,只需要把通知的方法加上。

然后能用PHP迭代器的情况,要尽量用PHP的迭代器来处理数据,因为C语言写的代码,肯定比你PHP处理的要高效

转载请注明:PHP研发工程师_小邓PHP博客 » 观察者模式

喜欢 (3)or分享 (0)
发表我的评论
取消评论

(Spamcheck Enabled)

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址