2011-05-10 38 views
0

我是Java世界的新手。如何避免混淆MVC模式中的变量声明在相同的变量?Java MVC模式中的变量声明约定/规则?

例如

在Servlet的(控制器):

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

在豆(模型):

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. 什么是宣布在不同
    模块相同的变量的正确方法(控制器,模型,视图,DAO)?我应该如何避免混淆?

  2. 在声明不同的 模块中的变量时,我有什么约定吗?

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

+1

至少要保持一致。不要混合使用'firstname','firstName'和'FirstName'。这没有意义。只要在任何地方使用'firstName'。做你自己和你未来的Java代码维护者一个忙。 – BalusC 2011-05-10 03:45:43

+0

以前,我认为每个模块应该有单独的变量声明。但是现在,我明白了。在Model/Bean中声明它并从任何地方访问它。谢谢。 – 2011-05-10 04:04:31

回答

2

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

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

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

在DAO中,你实际上是坚持你的模型。

所以,在Servlet的/控制器,这将是更多的东西就是这样,

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

而在你的DAO,它会更喜欢这个,

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

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

+0

好的。我明白你说的这个概念。这比我以前做的简单得多。谢谢。 – 2011-05-10 03:49:18

2

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