Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我什么时候给我的班级管理员、经理或服务部打电话?_Java_Model View Controller_Architecture_Naming Conventions - Fatal编程技术网

Java 我什么时候给我的班级管理员、经理或服务部打电话?

Java 我什么时候给我的班级管理员、经理或服务部打电话?,java,model-view-controller,architecture,naming-conventions,Java,Model View Controller,Architecture,Naming Conventions,也许这对你来说是显而易见的。我是java新手(半年工作),我和同事们进行了讨论。我很难根据他们的职责来命名我的班级。为此,我的班级获得了他们不应该承担的责任 你能帮我吗 顺便说一句:我目前在一个项目中工作,我必须使用服务类中的持久层。我已经将我的包分为模型、服务和持久性。我不知道我是否曾经命名过类管理器,所以我将其省略 对我来说,控制器是控制或决定某物(信号、消息等)去向的东西 服务是提供某些功能的接口(以及该接口的实现),通常位于系统或子系统的边界。尽可能隐藏实现细节。这些术语背后有一些特定的

也许这对你来说是显而易见的。我是java新手(半年工作),我和同事们进行了讨论。我很难根据他们的职责来命名我的班级。为此,我的班级获得了他们不应该承担的责任

你能帮我吗


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

我不知道我是否曾经命名过类管理器,所以我将其省略

对我来说,控制器是控制或决定某物(信号、消息等)去向的东西


服务是提供某些功能的接口(以及该接口的实现),通常位于系统或子系统的边界。尽可能隐藏实现细节。

这些术语背后有一些特定的模式和指导原则,我通常是基于这些模式和指导原则:

控制器基于该模式,应明确用于实现基于该设计模式的控制器功能的类。例如,如果您使用的是Spring MVC,并且您从一个控制器类进行扩展

服务不太具体,但我建议基于“.中的模式实现。基本上,控制器更特定于平台(例如,通过HTTP传输和呈现超文本,通常是基于web的控制器的HTML)服务不必知道谁在使用它以及如何使用它。您只是提供了一个统一的接口,例如web控制器可以依次使用该接口


管理者管理好东西。连接、应用程序上下文、会话;通常作为整个应用程序的组件可以对话的中心位置。

有关命名约定,请阅读官方文件

Manager—顾名思义,它管理代码中的事物,如EntityManager,它管理实体,TransactionManager—它管理事务。因此,您可以使用一种称为SecurityManager的东西来管理加密e.t.c使用的算法

控制器-同样,名称说明了很多,控制需要做什么,或者如何做。例如,ActionController-负责接收用户操作事件时做什么

服务-把它看作是一种服务,一个普通的人执行的任务,你可以利用它。

打包代码需要很多思考,您的应用程序打包应该始终与它所适应的业务模型保持一致


除了商业模式之外,您还需要考虑该功能是否在应用程序的核心位置,以便将其转移到核心位置,比如该功能是否用于与其他应用程序进行通信,您希望将其集成,等等。

如果您发现很难找到su,则要补充已经给出的好答案itable name为您的类命名,那么您可能应该调查您的类是否有多个职责。如果是这样,那么您肯定应该重构代码,将职责划分为单独的类。

对于约定,应该提到的是,坚持业务约定而不是Sun的约定是值得的Sun的指导方针当然是一个很好的起点,但最终,您的同事将维护您的代码(最终您将维护他们的代码),因此您应该遵循公司的惯例(如果您有一个是..).同意,但肯定或多或少贵公司的编码标准会遵循sun;)我希望你所说的是真的;)但我想我们可以从挖掘最疯狂的编码标准中得到一些乐趣。官方约定不再受支持,请参阅Oracle的免责声明,该约定与OP的要求无关。这s是一个非常好的例子,经常提到的过度热情和适度。一个非常清楚的问题,有非常清楚的答案,以没有建设性的方式结束。你避免“经理”的秘诀是什么“在类名中?@MichaelOzeryansky,我认为海报的意思是不需要卸载到第三方函数来处理。管理者通常是一个类,它有另一个子类执行所需的服务或逻辑。因此,如果您直接访问(即不需要额外的隔离层),就可以绕过它的使用。(将逻辑和服务直接捆绑到核心函数中将消除对manager的需求)。@user3681384我最常见的manager用例是将一些服务组合到函数调用中。我不是每次都这样组合,而是在管理器中定义函数。管理器还可以实例化为所有服务使用的公共属性。但是帖子上说“我不知道我是否曾经任命过班级经理”,所以我特别问了这个问题。避免用“控制器”来命名“管理者”并不能避免这个问题。不,我倾向于避免使用“管理者”这个词,因为它太模糊了。我可能会将其用于一个类,该类的实例应该负责资源的分配,甚至是资源的生命周期或对资源的访问。这种事不常发生,我需要这样的东西。仅仅结合一些调用不应该有一个特殊的名称,称之为it manager并不合适——至于设计模式,它听起来最像一个门面。