Phi*_*ll 0 java controller model view software-design
我用java编写了一些代码来给出1到10的一些数字,然后还显示平均值。我想将其更改为模型视图控制器方法(这就是导师想要的)。我们只上过一节课,我真的不明白如何改变它。如果有人能完成这个并告诉我如何(就像他们试图教一个 5 岁的孩子一样)那会很棒。
//JAVA CODE
public class Ex4 {
public static void main(String[] args) {
int sum = 0;
int average = 0;
for (int i=1; i < 10; i++){
sum = sum + i;
average = sum/i;
}
System.out.println("The sum is " + sum);
System.out.println("The average is " + average);
}
}
Run Code Online (Sandbox Code Playgroud)
MVC 是一种基本模式,您可以将模型(数据)、视图(显示)和控制器(逻辑)分离到不同的文件和目录中。
这是该模型的插图:

以下是您当前代码的外观示例:
控制器类(包括主要方法):
public class Ex4Controller {
//You could create a second controller,
//and put the main method there,
//then create a controller object.
public static void main(String[] args) {
//Initialize model
Ex4Model number = new Ex4Model(0,0.0);
//Execute business logic
Ex4Controller.getSumAndAverage(number);
//Set view
Ex4View.printSum(number.sum, number.average);
}
//Logic method
private static void getSumAndAverage(Ex4Model numbers){
for (int i=1; i < 10; i++){
//Here the controller interfaces with
//the model
numbers.sum = numbers.sum + i;
numbers.average = numbers.sum/i;
}
}
}
Run Code Online (Sandbox Code Playgroud)
控制器类与model和view. 此类是您执行所有流程并更新模型或视图的地方。任何逻辑完成,都将在这个类中完成。如果你想得到数字的平均值,你可以编写一个getmean()在这个类中调用的方法。数据操作仅在此处完成。
这是模型类:
public class Ex4Model {
public int sum = 0;
public double average = 0;
//Custom constructor to set values
public Ex4Model(int sum, double average){
this.sum = sum;
this.average = average;
}
}
Run Code Online (Sandbox Code Playgroud)
这个类用于保存数据。这里不做任何逻辑。这是用于存储数据的基本数据结构。此类不与视图交互。
这是您的视图类:
public class Ex4View {
public static void printSum(int sum, double average){
System.out.println("The sum is " + sum);
System.out.println("The average is " + average);
}
}
Run Code Online (Sandbox Code Playgroud)
这不是真实的观点,但考虑到情况,这是最好的证明。使用 Java,您可以将 Swing 文件放在这里。这些文件的作用是显示数据。您会注意到控制器将所有数据传递给此类,而不是从模型访问数据。
这将输出到控制台:
总和是 45
平均值为 5.0
MVC 需要记住的一点是,您可以拥有多个控制器、模型和视图。这是一个非常简单的例子。通过使用 MVC,开发人员和程序员能够更好地组织数据。他们知道一切都在哪里完成,而不是让视图操作某些区域的数据,而不是其他区域的数据。
我希望这是有道理的。
| 归档时间: |
|
| 查看次数: |
3351 次 |
| 最近记录: |