何时调用类控制器、管理器或服务?

也许这对你来说是显而易见的。我是Java的新手(半年工作),我和我的同事进行了讨论。我在根据班级的责任命名我的班级时遇到了麻烦。为此,我的班级获得了他们永远不应该承担的责任。

你可以帮我吗?

顺便说一句:我目前正在一个项目中工作,我必须使用服务类中的持久层。我已经将我的包拆分为模型,服务和持久性。


答案 1

这些术语背后有一定的模式和指南,这是我通常基于的地方:

控制器基于模型-视图-控制器设计模式,应显式用于基于此设计模式实现控制器功能的类。例如,如果您使用的是Spring MVC,并且从其中一个控制器类扩展。

服务有点不那么具体,但我建议将实现基于“企业应用程序体系结构模式”中的服务层模式。基本上,当控制器更特定于平台(例如,通过HTTP传输和超文本渲染,通常是基于Web的控制器的HTML)的情况下,服务不应该知道谁在使用它以及如何使用它。您只是提供了一个统一的界面,例如Web控制器可以依次使用。

经理人很好...管理东西。连接、应用程序上下文、会话;通常作为整个应用程序中的组件可以与之通信的中心位置。


答案 2

为了补充已经给出的好答案,如果你发现你很难找到一个适合你的类的名字,那么也许你应该调查你的类是否有多个责任。如果是这种情况,那么您绝对应该重构代码,以将职责隔离到单独的类中。