Java MVC模式中的变量声明约定/规则?

时间:2011-05-10 03:35:36

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

我是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(View)中:

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

我的问题/困惑?

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

  2. 在声明不同的变量时,是否需要遵循任何约定  模块?

  3. Servlet和DAO中的变量应该相同吗?应该是Models / Bean中的变量  与Servlet和DAO不同?

2 个答案:

答案 0 :(得分:2)

在你的servlet中,这些是方法变量。那很好。

在您的模型中,这可以作为模型的属性。那也很好。

在视图中,您实际上是指Model的属性,而不是声明任何变量。

在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。我希望它可以解决你的困惑。

答案 1 :(得分:2)

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