MVC(Model-View-Controller)模式

时间:2024-07-08 07:12:53

MVC(Model-View-Controller)模式三个主要组件:模型(Model),视图(View),和控制器(Controller):

模型(Model):

模型负责数据和业务逻辑。在这个场景中,模型可以简单地保存用户输入的数据:

#include <string>

class Model {
private:
    std::string inputData;

public:
    void setInputData(const std::string& data) {
        inputData = data;
    }

    std::string getInputData() const {
        return inputData;
    }

    // 在真实场景中,可能有更多的业务逻辑方法
};

视图(View):

视图负责显示用户界面,并处理用户的输入。如下面代码,视图可以简单地输出一些信息并接收用户输入。

#include <iostream>
#include <string>

class View {
public:
    void displayMessage(const std::string& message) {
        std::cout << message << std::endl;
    }

    std::string getUserInput() {
        std::string input;
        std::cout << "Enter data: ";
        std::cin >> input;
        return input;
    }

    // 可能还有其他显示方法,如显示提交成功等
};

控制器(Controller):

控制器协调模型和视图之间的交互,处理用户输入和更新模型和视图。

#include "Model.h"
#include "View.h"

class Controller {
private:
    Model model;
    View view;

public:
    void run() {
        view.displayMessage("Welcome to MVC Example");

        // 获取用户输入
        std::string userInput = view.getUserInput();

        // 更新模型
        model.setInputData(userInput);

        // 显示提交成功消息(模拟)
        view.displayMessage("Data submitted successfully.");

        // 在真实应用中,可能还会有更复杂的业务逻辑和数据处理
    }
};

主函数:

在主函数中,初始化控制器并运行整个应用程序。

int main() {
    Controller controller;
    controller.run();

    return 0;
}

总结

在这个示例中,模型(Model)负责管理数据,视图(View)负责显示界面并接收用户输入,控制器(Controller)负责协调视图和模型之间的交互。用户通过界面输入数据后,控制器负责更新模型中的数据,并通知视图显示相应的消息。