У меня есть приложение, в котором я хочу иметь строгое разделение между бэкэнд и интерфейсом (GUI).Если класс производного класса QAbstract * принадлежит бэкенду
Бэкэнд - логика приложения с классами cpp, а интерфейсом являются файлы QML с некоторыми классами cpp, которые в основном работают как адаптеры к серверу.
Теперь мне было интересно, есть ли у вас классы, полученные из QAbstract * Model в бэкэнд-форме, с точки зрения дизайна.
Моя первая мысль состояла в том, что они НЕ должны принадлежать серверу, потому что они всего лишь обертка вокруг некоторых классов контейнеров Qt, чтобы отражать их данные в графическом интерфейсе. Таким образом, можно вводить указатель на фактические данные, и их следует использовать только в интерфейсе для отображения цели, но они не должны использоваться нигде в бэкэнд.
Класс Qt Container, конечно, должен принадлежать бэкэнд.
Теперь мне также нужны некоторые функции преобразования и утилиты, которые действуют и, возможно, изменят данные контейнеров. Поэтому я написал класс «обработчик». Но теперь становится все труднее держать все в синхронизации, особенно, не получив привязки.
Другим решением было бы иметь класс, полученный из QAbstract * Model, который обертывает данные, а также имеет эти функции преобразования и утилит. Затем они могли вызвать функции dataChanged и т. Д. Тогда я мог бы использовать этот класс также в бэкэнде. Но это будет хороший дизайн, или если бэкэнд не будет содержать классы QAbstract * Model?
Поскольку я нахожу это довольно трудно выразить мою проблему четко, я надеюсь, что мой вопрос понятно в некотором роде :-)