我知道这应该是评论,但我目前没有发表评论所需的声誉。
首先,您能否提供更多关于您具体想了解的信息?您是否对 getter 和 setter 的一般工作方式感到困惑?您是否对 MVC 模式中的工作方式感到困惑? (getter 和 setter 在 MVC 中的工作方式与在其他设计模式中的工作方式相同)。
如果上面评论中发布的链接不能解决您的问题,那么希望我能提供帮助。 Getter 和 setter(getVarName 和 setVarName)用于提供附加功能(例如确保值符合所需范围等),还用于提供代码封装。除了附加功能(如验证)外,封装还有助于避免错误,例如在您无意中意外更改类变量的值。以 Customer 类为例:
public class Customer {
private int empNo;
private int deptNo;
//additional class variables
public Customer() {
//default constructor }
public Customer (int emp, int dept) {
empNo = emp;
deptNo = dept;
}
public int getEmpNo() {
return empNo;
}
public void setEmpNo(int emp) {
empNo = emp;
}
//other methods
}
假设所有员工编号必须为 5 位数字且不能以 0 开头。如果我们不使用 setter,则无法检查给定的数字是否为有效数字(或者它是偶数)给定)。为此,我们可以在 setEmpNo 方法中编写一个简单的验证要求。
public void setEmpNo(int emp) {
if(emp >= 10000 && emp <= 99999) {
empNo = emp;
}
//code to handle invalid numbers
}
封装还可以帮助我们避免某些错误,例如在我们只想检查条件中的值时更改 empNo 的值等。例如,如果我们不使用 getter 和 setter 并且只有一个公共 empNo,以下错字会改变员工员工编号的值:
if(employee1.empNo = 12345) { //checking if this is employee 12345 would use ==
//perform action for specified employee
}
但是,如果我们使用 getter 和 setter,我们仍然会遇到问题,因为我们不会检查所需员工的员工编号是否为 12345,但该员工的编号不会永久更改为 12345,并且仍会保留他/她的正确员工编号。这有意义吗?
看起来有人已经发布了一个关于 MVC 的很好的答案,所以我不会重复任何信息。我要指出的一件事是 MVC 通常(如果不总是)用于基于服务器的应用程序。如果您的应用程序包含用户与之交互的网站和数据库,那么您很有可能会使用 MVC 模式的某些变体。但是,您不会将 MVC 用于 Hello World 应用。
我希望我的回答不是太基本。如果不获取更多信息,就很难判断用户的知识水平。如果您希望我对我发布的任何内容进行澄清或进一步解释,请告诉我。
祝你好运。