【发布时间】:2015-04-10 11:05:27
【问题描述】:
希望对我的架构有一些建议
目前我使用的是分层架构,但有些东西变得有点复杂,我认为消息总线会更有用
我在 TeamControler 上有一个名为“CreateTeam”的控制器操作
哪个触发到 TeamService 方法 CreateTeam,然后触发到 PlayerService 方法“CreatePlayers”。
这意味着我的 TeamController 方法“CreateTeam”有两个责任
但是当用户创建团队时,我也需要创建玩家。
那么,CreateTeam 也触发一个在其他地方被拾取的事件 TeamCreated 会更好吗?赋予单一职责并分离关注点?
另外,我以前从未使用过消息总线模式,所以希望我不会让任何人感到困惑,但是引发总线拾取的事件以及随后监听的任何内容是否正确?所以这就是Tell don't ask?
最后,消息总线上的侦听器可以是 Web api 控制器吗?而不是很多单独的应用程序?所以我的带有 CreatePlayers 的 PlayerController 方法可以在引发 CreateTeamEvent 时被触发吗?
【问题讨论】:
-
我不是架构专家,但我可以与我的主要应用程序的结构联系起来。基本上,我会想象您不再通过控制器与主要业务逻辑交互的场景。然后,创建玩家的智能将完全取决于您的 Service 类。如果您不这样做,那么服务类的不同调用者将不知道该做什么。如果一个新团队必须始终创建新玩家,那么让服务来做吧。那么这意味着......您的消息侦听器调用服务,而不是尝试让控制器接收消息。
标签: message-queue servicebus event-driven