2

我目前正在开发一个应用程序,我可以在其中看到以下内容:

  • 控制器 A : service.getSession(userId, Status.Started);
  • 控制器 B:service.getSession(userId, Status.Done);

(其中 Status 表示可能状态的枚举)

  • 服务:getSession(Long id, Status status);

我觉得不对,因为要访问控制器 A 的用户具有某些角色,而用户访问 B 其他人,应该有 2 种服务方法:

  • getSessionReady(长 id);
  • getSessionClosed(长 id);

这样做我可以清楚地使用 Spring 安全性并确保正确的角色访问正确的服务方法。它让我创建了两种方法,但它更容易保护应用程序,服务层的目标实际上是限制访问以限制逻辑错误,对吗?

4

1 回答 1

1

是的。您使服务层(或任何类,实际上)越通用,它增加的价值就越少。

您希望您的服务层限制访问并确保只有有效的调用才能进入域。

还有,方法多也不是坏事!只要它们有意义,请随意。通常,带有触发不同行为的额外参数的方法是代码异味,应该分开。

于 2013-02-21T16:13:06.393 回答