Форум программистов, компьютерный форум CyberForum.ru

MVC дайте пример - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Передача char в функцию http://www.cyberforum.ru/cpp-beginners/thread1158708.html
Привет всем! Помогите, что неправильно: есть функция void send_new_object(char *g, char *h, int j) { char name_nach_punkta = *g; char name_kon_punkta = *h; nomer_marshrouta = j; } в которую посылается char add_name_nach_punkta; char add_name_kon_punkta;
C++ Написать программу на Форматированный ввод/вывод в текстовые файлы. Динамические массивы Файл f1 содержит: число чисел, записанных в файл; • далее - последовательность №1 целых положительных чисел в 16-й системе счисления. Последовательность №1 считать из файла и записать в динамический массив. Из динамического массива записать в файл f2 числа, делящиеся на 3 без остатка в 10-ой системе счисления. Вывести на экран содержимое файла f2 (считывать из файла). Вывод в файл f2... http://www.cyberforum.ru/cpp-beginners/thread1158665.html
По условию, заново выполнение программы? C++
Как сделать, выполнение небольшого кода заново, если условие выполнилось и присвоением нового значение какого либо переменной?
C++ Мин-макс в списке
не получается найти минимальный и максимальный элементы в списке: struct Node {int d,a; int value; Node *next; //указатель на следующий элемент списка Node *prev; };
C++ Динамическая память и конструктор класса http://www.cyberforum.ru/cpp-beginners/thread1158483.html
Подскажите, почему Marshroute *objects2 = new Marshroute(for_loop); компилятор ругается на (for_loop), если я хочу запустить конструктор не по умолчанию.
C++ Освобождение памяти Маленький вопросик, как правильно освобождать память выделенную под vector<...>, деструктором ~vector() или методом clear() ? подробнее

Показать сообщение отдельно
Bretbas
189 / 48 / 7
Регистрация: 05.08.2013
Сообщений: 768
Завершенные тесты: 1
29.04.2014, 23:39  [ТС]     MVC дайте пример
Не слышал чтобы делали одну модель,один контроллер и несколько представлений. Слышал, что на каждую подзадачу свой набор триады MVC. К примеру при запуске программы у меня сразу же выполняется триада Model,ControllerDefault,ViewDefault, то есть подзадача по умолчанию.

Вот к примеру я теперь хочу создать курсор, которым я могу двигаться по матрице...ведь это уже будет новая триада MVC правильно? Я сделал примерчик, точнее добавил к старому новые классы,которые занимаются курсором - ControllerCursor,ViewCursor, но Model мне пришлось оставить такой же, более того я добавил в нее новые свойства - x_pos,y_pos - координаты курсора в окне и x_matrix,y_matrix - координаты курсора в матрице.
Очень хотелось бы создать несколько моделей, чтобы отделить одну часть от другой, то есть отделить модель занимающейся матрицей, и модель занимающейся курсором, но у меня не получается, так как мне всегда нужно пробегать по матрице координатами(более того, в моей примере я это не сделал, но нужно в дальнейшем проверять границы курсора, чтобы мы не выпрыгнули за пределы матрицы, а значит мне точно нужно как-то сделать взаимодействие этих двух моделей.
Я сделал по легкому, просто объединил все в одну модель - и матрицу с ее шириной и высотой, и координаты курсора.

Теперь рассмотрим функцию main()...я не понимаю,честно, правильно ли я сделал или нет? В начале я создаю указатели на модель,контроллер и вид:
C++
1
2
3
4
5
...
Model* model;
View* view;
Controller* controller;
...
Потом инициализирую эти указатели с видом и контроллером по умолчанию(при запуске) и запускаю execute(), чтобы выполнить первые действия:
C++
1
2
3
4
5
...
view = new ViewDefault(model);
controller = new ControllerDefault(view,model);
controller -> execute();
...
Затем, я инициализирую эти же указатели с другим видом и контроллером - курсора:
C++
1
2
3
4
5
...
view = new ViewCursor(model);
controller = new ControllerCursor(view,model);
controller -> execute();
...
И так же вызываю execute(), чтобы считывать нажатие клавиш и двигать курсор в нужную мне сторону.

Вот этот подход правильный или нет, вот в чем у меня вопрос? Я смотрел примеры на php каркаса MVC, там 100% не так, там подключается файл по мере выполнения действий пользователя с пользовательским интерфейсом или что-то вроде того.
В C++ я не могу повторить так, поэтому пришлось сделать вот так, как в функции main(), но есть ли более правильный подход? Ведь если думать наперед, то представим что у нас 10 контроллеров, и 10 видов, что тогда? Весь main забивать инициализацией указателей?


Итак, повторюсь на счет глобальных вопросов:
1. Что делать с разделением Модели на две части, которые по идее не раздельны, но видно что их нужно разделить - модель матрицы и модель курсора
2. Что делать, если как Вы сказали должен быть всего один контроллер,одна модель и несколько представлений, но так не получается(смотрите мой пример)
3. Что делать с входной точкой в программу и дальнейшими действиями?( функция main() )
Вложения
Тип файла: 7z CreateMaps_new.7z (491.2 Кб, 11 просмотров)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru