Design patterns 为什么Symfony EventDispatcher对事件使用任意名称而不是基于类的传播?
我希望在我的应用程序中实现Observer模式(不是php,这就是为什么不使用Symfony的组件) 我发现很奇怪,组件没有使用类来传播或侦听事件,因为这样可以使用继承来侦听整个事件树Design patterns 为什么Symfony EventDispatcher对事件使用任意名称而不是基于类的传播?,design-patterns,symfony,observer-pattern,event-dispatching,Design Patterns,Symfony,Observer Pattern,Event Dispatching,我希望在我的应用程序中实现Observer模式(不是php,这就是为什么不使用Symfony的组件) 我发现很奇怪,组件没有使用类来传播或侦听事件,因为这样可以使用继承来侦听整个事件树 我看不出使用基于名称的侦听器有什么好处,你能帮我思考一下吗?Symfony2,在我看来,支持内聚而不是耦合,这就是为什么他们使用这种模式() 发件人: 面向对象的代码在确保代码安全方面已经走了很长的路 可扩展性。通过创建定义良好的类 责任,您的代码变得更加灵活,开发人员可以 用子类扩展它们以修改它们的行为。但如果
我看不出使用基于名称的侦听器有什么好处,你能帮我思考一下吗?Symfony2,在我看来,支持内聚而不是耦合,这就是为什么他们使用这种模式() 发件人: 面向对象的代码在确保代码安全方面已经走了很长的路 可扩展性。通过创建定义良好的类 责任,您的代码变得更加灵活,开发人员可以 用子类扩展它们以修改它们的行为。但如果他想 与其他开发人员共享他的更改,这些开发人员也做出了自己的贡献 对于自己的子类,代码继承不再是答案 考虑一下 真实世界的示例,其中您希望为您的应用程序提供插件系统 项目插件应该能够添加方法,或者做一些事情 在方法执行之前或之后,不干扰其他 插件。这不是一个简单的单继承问题, 而多重继承(如果PHP有可能的话)也有自己的特点 缺点 Symfony2事件调度程序组件实现 中介模式以一种简单有效的方式使所有这些 使您的项目真正具有可扩展性