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