MVVC (Model-View-ViewController)

Ответить
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

MVVC (Model-View-ViewController)

Сообщение ya »

MVVC (Model-View-ViewController) — это одна из архитектурных паттернов проектирования, используемая для разделения логики приложения на три компонента: модель (Model), вид (View) и контроллер (ViewController). Однако, более привычным и распространённым паттерном является MVC (Model-View-Controller). Возможно, вы имели в виду именно этот паттерн.

Код: Выделить всё

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

// Модель
class Model {
public:
    void addData(const std::string& data) {
        dataList.push_back(data);
    }
    
    const std::vector<std::string>& getData() const {
        return dataList;
    }

private:
    std::vector<std::string> dataList;
};

// Представление
class View {
public:
    void displayData(const std::vector<std::string>& data) const {
        std::cout << "Data:\n";
        for (const auto& item : data) {
            std::cout << "- " << item << '\n';
        }
    }
};

// Контроллер
class Controller {
public:
    Controller(Model& model, View& view) : model(model), view(view) {}

    void addData(const std::string& data) {
        model.addData(data);
    }

    void updateView() {
        view.displayData(model.getData());
    }

private:
    Model& model;
    View& view;
};

int main() {
    Model model;
    View view;
    Controller controller(model, view);

    controller.addData("First entry");
    controller.addData("Second entry");
    
    controller.updateView(); // Показать данные

    return 0;
}
Компиляция

Код: Выделить всё

g++ -std=c++11 -o mvc_example mvc_example.cpp
Model: Хранит данные и предоставляет методы для добавления и получения данных.
View: Отвечает за отображение данных пользователю.
Controller: Обрабатывает взаимодействия и взаимодействует с моделью и представлением.

Это базовая структура, которую можно расширять для более сложных приложений, добавляя функциональность, такую как обработка событий, более сложные модели данных и так далее.
Ответить