欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

依据C# 事件思想来实现 php 事件

程序员文章站 2022-04-18 12:04:40
...
根据C# 事件思想来实现 php 事件

事件定义

当我们使用委托场景时,我们很希望有这样两个角色出现:广播者和订阅者。我们需要这两个角色来实现订阅和广播这种很常见的场景。

广播者这个角色应该有这样的功能:包括一个委托字段,通过调用委托来发出广播。而订阅者应该有这样的功能:可以通过调用 += 和 -= 来决定何时开始或停止订阅。

事件就是描述这种场景模式的一个词。事件是委托的一个子集,为了满足“广播/订阅”模式的需求而生。

C#中事件简单实现

using System;namespace ConsoleApplication2{    class Program    {        static void Main(string[] args)        {            ObServer ob = new ObServer();            ob.Changed += Change;            ob.Trigger("hello kitty");            Console.ReadLine();        }        static void Change(string output)        {            Console.WriteLine(output);        }    }    class ObServer    {        ///         /// 事件        ///         public event Actionstring> Changed;        ///         /// 触发事件        ///         ///         public void Trigger(string init)        {            Changed(init);        }    }}

同样的思路, 我的理解事件其实就是一种 执行A函数的时候自动执行B 函数过程,上面列子对照就只执行 init 的时候自动触发委托的 changing 从而绑定执行print,重点是在

Observer 本身自己不实现changing 想刚业务把业务交由外面来处理这样在处理复杂系统的耦合提供便利。

结合这个思路那么php 实现类似的事件

phpclass ObService{    public $even = null;    public  function  trigger($init){        call_user_func($this->even, $init);    }}$ob = new ObService();$ob->even = "Chanage";$ob->trigger("hello kitty!");function Chanage($str){    echo($str);}?>

总结: 以上我也没查php 真正实现事件的代码,只是根据个人理解 ,结合C#代码来实现事件。

依据C# 事件思想来实现 php 事件

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • 依据C# 事件思想来实现 php 事件
  • 专题推荐

    作者信息
    依据C# 事件思想来实现 php 事件

    认证0级讲师

    推荐视频教程
  • 依据C# 事件思想来实现 php 事件javascript初级视频教程
  • 依据C# 事件思想来实现 php 事件jquery 基础视频教程
  • 视频教程分类