【问题标题】:naming conventions of Controller and Model Java classes in Spring / MVC webapp?Spring / MVC webapp中Controller和Model Java类的命名约定?
【发布时间】:2012-01-27 19:10:22
【问题描述】:

假设我的控制器和模型中有“设置”类,在我的 Java/Spring/MVC webapp 中。现在,在/controllers//models/ 中,我应该...

1) ...将它们都命名为Settings.java?

2) ...将它们命名为 SettingsController.javaSettingsModel.java 或类似名称?

我很好奇典型的命名约定以及您个人经验中使用的命名约定效果很好。随意参考您自己的 webapp 项目来代替我的,也许是可怜的例子。

这是我的第一个 MVC webapp,我正在尝试感受一下。

【问题讨论】:

    标签: java web-applications spring-mvc


    【解决方案1】:

    我建议你打电话给你的控制器SettingsController 和模型只是Settings。这是因为模型实际上包含您的数据。你的模型包含什么样的数据?答案是:设置。所以,称之为设置。

    控制器是不同的故事。这是一个处理数据的类。可能有很多类处理设置:SettingsBuilderSettingsFactorySettingsUtilSettingsService 等。这个是控制器,所以叫它SettingsController

    【讨论】:

      【解决方案2】:

      由于模型类描述了“现实生活中的”实体,因此最好按名称来称呼它们,因此在您的情况下,它应该是 Settings.java

      另一方面,控制器只是使用特定架构 (MVC) 的副产品,因此它具有 Controller 后缀,在您的情况下变为 SettingsController.java

      例如,如果您使用 jsf 编写应用程序,您仍然可以将 Settings.java 作为模型,但将 SettingsBean.java 作为控制器(显然这只是另一种约定,您可以随意调用它)。

      【讨论】:

        【解决方案3】:

        将它们命名为 SettingsController.javaSettings.java

        【讨论】:

          【解决方案4】:

          我会选择 Settings.java 和 SettingsController.java。

          *Controller 遵循 Spring 的控制器命名约定。此外,它可以让程序员立即了解该类的作用。

          通常我总是喜欢 POJO 的简单名称,Settings.java 似乎适合这里。

          【讨论】:

            【解决方案5】:

            我觉得下面的风格最连贯

            com.company.web.controller
                           +-  SettingsController.java
            com.company.web.model
                           +-  Settings.java
            

            原因是Settings 是一个准确描述它是什么的名称,而SettingsController 描述它是一个处理Settings 对象的控制器。

            【讨论】:

            • 我同意你的命名,但不同意包结构——我会将它们放在同一个包中,或者至少在同一个包树下。但这也可能是一个偏好问题。
            • @RobHruska 我们以相同的方式设置,com.subdomainname.controllerscom.subdomainname.models,这是我工作的公司使用的结构,所以我必须遵循。
            【解决方案6】:

            我必须同意之前的海报,Model 应该只是实体的名称,然后任何形容词都应该是实体的后缀,所以 Settings 和 SettingsController 这是我经常使用的技巧。我也使用设置作为网页的名称。

            【讨论】:

              【解决方案7】:

              我会用

              com.company.controller.SettingsServlet.java 用于控制器,com.company.model.Settings.java 用于模型类。

              您可以使用包命名 com.company.controller 来指示 Controller 类的控制器方面,但它毕竟是一个 Servlet,并且使用此命名将与其他任何东西一样明确无误。从技术上讲,控制器可以是任何类型的任何东西。模型类也由它的包名表示。

              仅凭信仰跟随就是盲目跟随——本杰明·富兰克林

              【讨论】:

                猜你喜欢
                • 2014-07-18
                • 1970-01-01
                • 1970-01-01
                • 2011-09-19
                • 2011-01-19
                • 2012-03-17
                • 1970-01-01
                • 2021-12-04
                • 2018-11-22
                相关资源
                最近更新 更多