Форум программистов, компьютерный форум, киберфорум
Наши страницы

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; } в...
C++ Написать программу на Форматированный ввод/вывод в текстовые файлы. Динамические массивы Файл f1 содержит: число чисел, записанных в файл; • далее - последовательность №1 целых положительных чисел в 16-й системе счисления. Последовательность №1 считать из файла и записать в... 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
Каждому свое
512 / 198 / 47
Регистрация: 05.08.2013
Сообщений: 1,575
Завершенные тесты: 2
27.04.2014, 23:28  [ТС]
Qt не изучал никогда,а есть ли смысл?Мне кажется,что нужно вначале без всяких библиотек понять конструкцию MVC,а потом уже смотреть,то что действительно подходит)

Короче вот тут набросал свою программку с использованием MVC и других паттернов, таких как Наблюдатель и Комманда. Ничего толком она не делает еще, только создал 3 абстрактных класса - Model,Controller,View.
Model состоит у меня из таких свойств как двумерный массив(сама матрица),ширина и высота(матрицы). Так же имеются методы get,set...
Controller наследуется от класса Command, чтобы реализователь паттерн проектирования Команда.
View является наблюдателем за изменением Model, по этому в этом случае я применил паттерн Наблюдатель, который реализуется в классах Observer и Observable.

Итак, Я начинаю создавать подклассы данной триады, и получаю в итоге еще 2 класса ViewDefault и ControllerDefault - Вид и Контроллер по умолчанию, то есть при первом запуски моего приложения, должны создаваться экземпляры именно этих классов.
В методе execute() переопределенного классом ControllerDefault запрашивается у пользователя Ширина и Высота матрицы и изменяется соответственно Model(Проверку на правильность введенных данных не проверяю, для простоты примера).
Соотвенно заполняется так же массив(матрица) заданной шириной и высотой нулями так же в методе execute(). После всех изменений в Модели Я вызываю метод notify(), для оповещения всех наблюдателей за Моделью.
После вызова этого метода, вызывается метод update() класса ViewDefault и рисуется на экране в середине двумерный массив(матрица).

Вроде все. Пример прикрепил.

Теперь вопросы...

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