В настоящее время я работаю над проектом, основанным на Qt4 / QtCreator. Хочу попросить совета, как оформить мою заявку.
Есть 3 отдельных инструмента, у каждого свой вид. Все представления интегрированы в главное окно в виде незакрываемых вкладок. Я подготовил 3 представления: Tool1View, Tool2View, Tool3View
Предполагается, что каждый инструмент выполняет некоторую задачу, запускаемую действиями пользователя. Но это не операции, связанные с базой данных (список / добавление / изменение ...) - по крайней мере, пользователь не собирается добавлять / изменять / перечислять записи в элементах графического интерфейса.
Я думаю реализовать каждый инструмент в 2-х классах:
Первоклассный ToolXView, реализующий виджет и все задачи, связанные с изменениями графического интерфейса.
Второй класс ToolX, реализующий логику приложения. Функции-члены этого класса запускаются классом View. Всякий раз, когда этому классу необходимо обновить элементы графического интерфейса, он вызывает специализированные функции в классе View. Таким образом, отсюда не производятся прямые вызовы виджетов.
Класс представления и класс логики будут связаны друг с другом для обеспечения двусторонней связи.
Теперь мне интересно, хороший ли это способ. Пожалуйста, посоветуйте мне, основываясь на своем опыте.
Я планирую инкапсулировать указатель на логический класс как свойство класса представления и указатель на вид как свойство класса логики. Таким образом, я планирую интегрировать их.
Следует ли мне использовать сигналы / слоты для обеспечения связи или просто вызывать функции-члены?
Мне придется хранить некоторые данные в базе данных QtSql. Должен ли я предоставить отдельный класс для доступа к базе данных. Или просто реализовать отдельные функции-члены внутри класса Logic?
Как вы называете свои классы. Эта схема хороша или мне стоит ее изменить?
Спасибо за помощь. Я признателен за ваши комментарии.