什么是在MVC中触发事件的最佳位置?

时间:2016-12-13 09:38:05

标签: oop model-view-controller

拥有一个mvc系统,是否更好地触发控制器中的事件或注入的服务中的事件具有依赖性?

例如

class MyController
{
    $brainStorage->store($yellowBrain);

    $EventDispatcher->dispatch(new BrainCreatedEvent($yellowBrain));

...

或者应该是触发事件的存储服务?

我更喜欢控制类是唯一知道域事件的人。

哪些是利弊?

1 个答案:

答案 0 :(得分:0)

如果您的控制器开始执行事件处理,它将失败单一责任,因此我认为最好的选择是创建抽象并让客户决定注入应用程序服务的算法,以协调您的工作流程(使用战略模式,IOC,删除代码气味,您的代码将开始可扩展和SOLID)希望这有助于决定,亲切的问候!