0

关注点分离 (SoC) 建议将您的应用程序分解为特定的功能单元,以便每个单元仅解决一个关注点的需求。

我有一个实践场景,其中 SoC 通常需要更多时间来处理用户请求。例如,假设我在社交媒体网站上工作。当用户接受来自另一个人的邀请时,我们通常会做一些如下的处理,例如。

  1. 邀请将被验证。(InvitationRepository 会这样做)
  2. 朋友将被添加到我的网络列表中。(FriendRepository 会这样做)
  3. 电子邮件将被跟踪并将电子邮件发送给朋友。(EmailRepository 会这样做)

在这种情况下,我们需要等到我们完成对数据库的三个请求(数据库位于某个地方),并且在比较其他使用单体代码在一个数据库调用中所有内容都存在的场景时,需要很长时间才能完成。

你能建议在这种情况下哪一个会好?

4

1 回答 1

0

做有意义的事。如果为了应用程序标准而维护 SoC 很重要,那么请寻找优化 SoC 的方法,或者创建一个异步进程而不是仍然使用 SoC 的同步进程。如果可用性超过了 SoC 并且 SoC 变通办法是不可能的,那么如果你必须这样做,那么做一个整体的事情,在创建架构噩梦的原因。

最好的解决方案并不总是能够为您提供最高吞吐量的解决方案。否则,ASP.NET .aspx.cx 页面将所有关注点都硬连接到其中——业务逻辑、数据库访问、Web 服务调用等。这将是十多年前许多经典 ASP 应用程序的所在。

于 2011-01-17T18:39:25.450 回答