【PHP-设计模式】观察者模式

举报
原来是咔咔 发表于 2022/03/27 01:08:27 2022/03/27
【摘要】 author:咔咔 wechat:fangkangfk 这个模式,让俩个不相关的类通过观察者模式实现一个功能,个人观点吧!不能为了使用设计模式而强硬使用设计模式,所有的模式都是一样的,他只是一种思想而已 实现步骤: 1.定义一个observer接口 2.定义发送模板消息的类 3.最后就是定义实际运行代码的类payaf...

author:咔咔

wechat:fangkangfk

这个模式,让俩个不相关的类通过观察者模式实现一个功能,个人观点吧!不能为了使用设计模式而强硬使用设计模式,所有的模式都是一样的,他只是一种思想而已

实现步骤:

1.定义一个observer接口

2.定义发送模板消息的类

3.最后就是定义实际运行代码的类payafter

在payafter这个类里边需要注册观察者


  
  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. /**
  4. * Interface observer
  5. * 实现观察者角色接口
  6. */
  7. interface Observer
  8. {
  9. public function send();
  10. }
  11. /**
  12. * Class wxpush
  13. * 最终实现微信模板消息方法
  14. */
  15. class Wxpush implements observer
  16. {
  17. public function send()
  18. {
  19. echo '最终的发送消息代码';
  20. }
  21. }
  22. /**
  23. * Class payafter
  24. * 修改订单消息
  25. */
  26. class Payafter
  27. {
  28. // 定义角色
  29. private $_ob= [];
  30. /**
  31. * 注册观察者
  32. */
  33. public function register($obj)
  34. {
  35. $this->_ob[] = $obj;
  36. }
  37. /**
  38. * 实际触发
  39. */
  40. public function trigger()
  41. {
  42. if(!empty($this->_ob)){
  43. foreach($this->_ob as $value){
  44. $value->send();
  45. }
  46. }
  47. }
  48. }
  49. $payafter = new Payafter();
  50. $payafter->register(new Wxpush());
  51. $payafter->trigger();

文章来源: blog.csdn.net,作者:咔咔-,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/fangkang7/article/details/84402214

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。