21xrx.com
2025-03-24 08:28:42 Monday
文章检索 我的文章 写文章
开发中常用的MVC设计模式
2023-06-15 00:30:22 深夜i     13     0
Java软件开发 MVC设计模式 POJO

在Java软件开发中,有一种常见的设计模式被广泛应用,即MVC设计模式。MVC(Model-View-Controller,模型-视图-控制器)是一种软件架构模式,通过将应用程序分成三个部分来实现分层结构:模型层(Model)、视图层(View)和控制器层(Controller)。MVC设计模式可以使程序更加清晰、易于维护和扩展。

模型部分(Model):指的是应用程序中用于保存数据的部分。它包括数据表、数据对象或其他存储数据的结构。在Java中,我们可以使用POJO(Plain Old Java Objects)来表示模型部分。这些类用于描述应用程序中的数据。

视图部分(View):指的是应用程序中的用户界面。它包括与用户交互的所有元素,如按钮、文本框、标签等。在Java中,我们可以使用Swing或JavaFX等用户界面库来构建视图部分。

控制器部分(Controller):指的是应用程序中用于控制模型和视图部分的代码。控制器接收用户输入并处理结果,对模型进行修改并在视图中显示结果。在Java中,我们可以使用Servlet或Spring等框架来编写控制器部分的代码。

下面是一个简单的使用MVC设计模式的Java代码案例。这个例子是一个简单的计算器应用程序,用户可以输入两个数字和运算符,然后程序输出结果。这个例子中,模型部分保存输入的数据和输出的数据,视图部分提供用户界面,控制器部分接收用户输入并计算结果。

//模型部分
public class CalculatorModel {
 private int firstNumber;
 private int secondNumber;
 private int result;
 
 public void setFirstNumber(int firstNumber)
  this.firstNumber = firstNumber;
 
 
 public void setSecondNumber(int secondNumber)
  this.secondNumber = secondNumber;
 
 
 public void setResult(int result)
  this.result = result;
 
 
 public int getFirstNumber()
  return firstNumber;
 
 
 public int getSecondNumber()
  return secondNumber;
 
 
 public int getResult()
  return result;
 
}
//视图部分
public class CalculatorView {
 private JTextField firstNumber = new JTextField(5);
 private JLabel operator = new JLabel("+");
 private JTextField secondNumber = new JTextField(5);
 private JButton calculateButton = new JButton("=");
 private JTextField result = new JTextField(5);
 
 public CalculatorView() {
  JPanel panel = new JPanel();
  panel.add(firstNumber);
  panel.add(operator);
  panel.add(secondNumber);
  panel.add(calculateButton);
  panel.add(result);
  JFrame frame = new JFrame();
  frame.add(panel);
  frame.pack();
  frame.setVisible(true);
 }
 
 public int getFirstNumber() {
  return Integer.parseInt(firstNumber.getText());
 }
 
 public int getSecondNumber() {
  return Integer.parseInt(secondNumber.getText());
 }
 
 public void setResult(int result) {
  this.result.setText("" + result);
 }
 
 public void addCalculateListener(ActionListener listenForCalcButton) {
  calculateButton.addActionListener(listenForCalcButton);
 }
}
//控制器部分
public class CalculatorController implements ActionListener {
 private CalculatorModel model;
 private CalculatorView view;
 
 public CalculatorController(CalculatorModel model, CalculatorView view) {
  this.model = model;
  this.view = view;
  this.view.addCalculateListener(this);
 }
 
 public void actionPerformed(ActionEvent e) {
  int firstNumber = view.getFirstNumber();
  int secondNumber = view.getSecondNumber();
  String operator = view.getOperator();
  int result = 0;
  if(operator.equals("+")) {
   result = firstNumber + secondNumber;
  } else if(operator.equals("-"))
   result = firstNumber - secondNumber;
   else if(operator.equals("*")) {
   result = firstNumber * secondNumber;
  } else if(operator.equals("/"))
   result = firstNumber / secondNumber;
  
  model.setFirstNumber(firstNumber);
  model.setSecondNumber(secondNumber);
  model.setResult(result);
  view.setResult(result);
 }
}
//主程序
public class Main {
 public static void main(String[] args) {
  CalculatorModel model = new CalculatorModel();
  CalculatorView view = new CalculatorView();
  CalculatorController controller = new CalculatorController(model, view);
 }
}

通过上面的代码案例,我们可以看到使用MVC设计模式的程序结构更加清晰,模型、视图、控制器三个部分的职责分明。在实际开发中,MVC设计模式可以使程序更加易于维护和扩展,提高开发效率,降低开发成本。

  
  

评论区