crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Программа для сценаристов, Обсуждение программы и кода
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 здесь - это реальные представители модели предметной области.

Что внутри? Классы.

А вот и диаграмма со всеми представителями слоя.


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

Вот примерно так и организована модель предметной области в моём приложении.

Как обычно, если у вас нашлись вопросы или замечания, буду очень рад обсудить их!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.4.2024, 7:22