Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 为什么Symfony EventDispatcher对事件使用任意名称而不是基于类的传播?_Design Patterns_Symfony_Observer Pattern_Event Dispatching - Fatal编程技术网

Design patterns 为什么Symfony EventDispatcher对事件使用任意名称而不是基于类的传播?

Design patterns 为什么Symfony EventDispatcher对事件使用任意名称而不是基于类的传播?,design-patterns,symfony,observer-pattern,event-dispatching,Design Patterns,Symfony,Observer Pattern,Event Dispatching,我希望在我的应用程序中实现Observer模式(不是php,这就是为什么不使用Symfony的组件) 我发现很奇怪,组件没有使用类来传播或侦听事件,因为这样可以使用继承来侦听整个事件树 我看不出使用基于名称的侦听器有什么好处,你能帮我思考一下吗?Symfony2,在我看来,支持内聚而不是耦合,这就是为什么他们使用这种模式() 发件人: 面向对象的代码在确保代码安全方面已经走了很长的路 可扩展性。通过创建定义良好的类 责任,您的代码变得更加灵活,开发人员可以 用子类扩展它们以修改它们的行为。但如果

我希望在我的应用程序中实现Observer模式(不是php,这就是为什么不使用Symfony的组件)

我发现很奇怪,组件没有使用类来传播或侦听事件,因为这样可以使用继承来侦听整个事件树


我看不出使用基于名称的侦听器有什么好处,你能帮我思考一下吗?

Symfony2,在我看来,支持内聚而不是耦合,这就是为什么他们使用这种模式()

发件人:

面向对象的代码在确保代码安全方面已经走了很长的路 可扩展性。通过创建定义良好的类 责任,您的代码变得更加灵活,开发人员可以 用子类扩展它们以修改它们的行为。但如果他想 与其他开发人员共享他的更改,这些开发人员也做出了自己的贡献 对于自己的子类,代码继承不再是答案

考虑一下 真实世界的示例,其中您希望为您的应用程序提供插件系统 项目插件应该能够添加方法,或者做一些事情 在方法执行之前或之后,不干扰其他 插件。这不是一个简单的单继承问题, 而多重继承(如果PHP有可能的话)也有自己的特点 缺点

Symfony2事件调度程序组件实现 中介模式以一种简单有效的方式使所有这些 使您的项目真正具有可扩展性