2013-02-21 21 views
1

我目前工作的一个应用程序,我可以看到以下内容:春天 - 服务层的方法,泛型和具体

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

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

  • 服务:的getSession(长ID,状态的状态);

我觉得不对,因为谁是要访问控制器A具有一定的角色和用户访问乙别人,应该有2种服务方法的用户:

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

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

回答

0

是的。您制作服务层(或其他类)的通用性越高,其添加的价值就越低。

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

此外,更多的方法并不是一件坏事!只要他们有道理,随时都可以。通常带有额外参数的方法会触发不同的行为,这是一种代码异味,应该分解。

+0

好的,谢谢你的回答,这证实了我的想法。 – user1718057 2013-02-21 16:21:26