Sobes.tech
Назад к вопросам
Junior — Middle
91

Можете объяснить, что представляет собой архитектурный паттерн Model-View-Controller?

Ответ от нейросети

sobes.tech AI

Model-View-Controller (MVC) — это архитектурный паттерн, который разделяет приложение на три основные компоненты:

  • Model (Модель) — отвечает за данные и бизнес-логику. Она управляет состоянием приложения и взаимодействует с базой данных.
  • View (Представление) — отвечает за отображение данных пользователю, то есть пользовательский интерфейс.
  • Controller (Контроллер) — принимает пользовательский ввод, обрабатывает его, взаимодействует с моделью и обновляет представление.

Такое разделение помогает организовать код, облегчает поддержку и расширение приложения.

Пример: в веб-приложении пользователь нажимает кнопку (View), контроллер обрабатывает событие, запрашивает данные у модели, а затем обновляет интерфейс.

// Упрощённый пример
class Model {
public:
    int data;
};

class View {
public:
    void display(int data) {
        std::cout << "Data: " << data << std::endl;
    }
};

class Controller {
    Model& model;
    View& view;
public:
    Controller(Model& m, View& v) : model(m), view(v) {}
    void updateData(int newData) {
        model.data = newData;
        view.display(model.data);
    }
};

int main() {
    Model model;
    View view;
    Controller controller(model, view);
    controller.updateData(42);
    return 0;
}