【问题标题】:Combining two services - Design Pattern MVC结合两种服务 - 设计模式 MVC
【发布时间】:2018-06-08 13:47:10
【问题描述】:

我有一个服务可以锁定用户对 Id 执行操作,称为“LockingService”,

我还有 2 个不同的东西需要锁定:

  1. (MembershipService) 登录 - 如果用户尝试使用会员号码登录超过 3 次 - 会员号码将被锁定。
  2. (OtherService) 如果用户尝试输入无效凭据 - 他们的会话被锁定。

服务不区分两者。

描述的是控制器上当前存在的流程之一(用于登录):

if(LockingService.IsLocked(membershipNumber)) 
   return View(dto);


if(MembershipService.login(membershipNumber)) {
   ... some actions that always
   return dto;
}
else {
   LockingService.AddToFailedAttempts(membershipNumber);
   return dto; // with errors
}

我相信这个流程逻辑不应该驻留在控制器中。

一般cmets的建议将不胜感激。
谢谢。

【问题讨论】:

  • 这看起来更像是代码审查
  • 不是。这是编写代码的开发人员建议在控制器中实现的方式。

标签: oop design-patterns model-view-controller


【解决方案1】:

你是对的 - 这不属于控制器,它属于服务。

你应该有,即 UserService,它有方法 login 和业务逻辑。

该服务可以使用其他服务,只需要它们并使用它们。控制器应该只处理输入/输出并调用正确的服务方法。

【讨论】:

  • 有合适的具体设计模式吗?
猜你喜欢
  • 2015-09-19
  • 2011-02-27
  • 1970-01-01
  • 2012-07-30
  • 2023-03-10
  • 2012-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多