Программа для сценаристов, Обсуждение программы и кода |
Здравствуйте, гость ( Вход | Регистрация )
Программа для сценаристов, Обсуждение программы и кода |
DOGG |
29.10.2014, 16:49
Сообщение
#1
|
Студент Группа: Участник Сообщений: 44 Регистрация: 9.8.2011 Из: Калининград Пользователь №: 2798 Спасибо сказали: 6 раз(а) Репутация: 0 |
Всем привет.
Ради интереса, предлагаю на досуге ознакомиться с моим творением - программой для написания киносценариев. Программа представляет из себя продвинутый текстовый редактор. Может быть кому-то будет интересно. А мне было бы интересно ваше мнение - как код? Не претендую на полномасштабный ревью, но может всё-таки взглянете хотя бы на способ взаимодействия слоя бизнес логики со слоем хранения данных? или может быть вас заинтересует постраничный редактор а-ля ворд на основе QTextEdit'а? Вобщем, кому не лень, или наоборот нечего делать - милости просим! Вот ссылка на гитхаб - https://github.com/dimkanovikov/Scenarist, там в ридми есть ссылка на сайт самого проекта, если вдруг понадобится более подробная информация о нём. Или пишите прямо сюда, я с удовольствием готов обсудить любые вопросы! |
|
|
DOGG |
22.4.2015, 13:04
Сообщение
#2
|
Студент Группа: Участник Сообщений: 44 Регистрация: 9.8.2011 Из: Калининград Пользователь №: 2798 Спасибо сказали: 6 раз(а) Репутация: 0 |
Приветствую, коллеги.
Продолжим наше знакомство и сегодня поговорим о слое Модель предметной области. Модель предметной области предназначена для сокрытия базы данных от верхних слоёв приложения, т.е. в приложении мы работаем с объектами (сценарием, персонажами, локациями и т.п.), а не с записями из базы. Что внутри? Устройство слоя. Давайте рассмотрим, как устроена логика работы слоя. DomainObject - базовый класс для всех объектов модели предметной области. Т.к. объекты являются отражениями данных из базы, то они содержат поле идентификации (Identifier - обёртка над идентификатором записи из базы данных), методы для работы с ним, а так же вспомогательный функционал для отслеживания изменений объекта. DomainObjectsItemModel - базовый класс для списков объектов. Наследуется от родной модели Qt, реализуя основной функционал и немного расширяет её. Это позволяет использовать преимущества, как самой модели предметной области, так и техники Qt Model/View Programming. ConcreteObject и ConcreteObjectsItemModel здесь - это реальные представители модели предметной области. Что внутри? Классы. А вот и диаграмма со всеми представителями слоя. Каждый из девяти объектов хранит всю необходимую информацию о себе, а так же имеет вспомогательные функции для работы со своими данными. Вот примерно так и организована модель предметной области в моём приложении. Как обычно, если у вас нашлись вопросы или замечания, буду очень рад обсудить их! |
|
|
Текстовая версия | Сейчас: 22.11.2024, 1:42 |