【问题标题】:Variable declarations conventions/rules in Java MVC pattern?Java MVC模式中的变量声明约定/规则?
【发布时间】:2011-08-22 03:21:41
【问题描述】:

我是 Java World 的新手。如何避免在 MVC 模式中对同一变量的变量声明造成混淆?

例如,

在 Servlet(控制器)中:

String firstName     = request.getParameter("firstname");
String lastName      = request.getParameter("lastname");

在 Bean(模型)中:

private String firstname;
private String lastname;

public Person(String FirstName, String LastName) {
    setFirstName(FirstName);
    setLastName(LastName);
}

//Getter and Setter Methods
public String getFirstName() {
  return firstname;
}
public void setFirstName(String FirstName) {
  this.firstname = FirstName;
}
public String getLastName() {
  return lastname;
}
public void setLastName(String LastName) {
  this.lastname = LastName;
}

在 DAO(数据访问层)中:

public void savePerson(String firstName, String lastName) {
    // Method statements
}

并在 JSP(视图)中:

${person.firstname} ${person.lastname}

我的问题/困惑?

  1. 在不同变量中声明相同变量的正确方法是什么
    模块(控制器、模型、视图、道)?我应该如何避免混淆?

  2. 在不同的变量中声明变量时是否必须遵循任何约定? 模块?

  3. Servlet 和 DAO 中的变量应该相同吗? Models/Bean 中的变量 和 Servlet 和 DAO 有什么区别?

【问题讨论】:

  • 至少,保持一致。不要混用 firstnamefirstNameFirstName。这是没有意义的。只需在任何地方使用firstName。帮您自己和您未来的 Java 代码维护者一个忙。
  • 以前,我认为每个模块都应该有单独的变量声明。但现在,我明白了。在 Model/Bean 中声明它并从任何地方访问它。谢谢。

标签: java model-view-controller design-patterns jsp servlets


【解决方案1】:

在您的 servlet 中,这些将是方法变量。挺好的。

在您的模型中,这用作模型的属性。也挺好的。

您实际上是指模型的属性,而不是声明任何变量。

在 DAO 中,您实际上是在持久化您的模型。

所以,在 Servlet/Controller 中,这将更像这样,

Person p = new Person();
p.setFirstName(request.getParameter("firstname"));
p.setLastName(request.getParameter("lastname"));

在你的 DAO 中,它会更像这样,

public void savePerson(Person person) {
    // Method statements
}

因此,声明只发生在Model。我希望它能消除你的困惑。

【讨论】:

  • 好的。我明白你说的概念。这比我以前做的要简单得多。谢谢。
【解决方案2】:

我认为您使用的变量名很好。您可以根据模块的类型命名您的类。因此,您可以使用 MyApplicationController、EmployeeModel、EmployeeDAO 等名称来命名您的类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    相关资源
    最近更新 更多