Я думаю, что терминология, используемая в Qt с элементами управления моделью/представлением, является ошибочной. На странице объяснения говорится, что они упростили MVC до MV, объединив View и Controller, и они дают следующее изображение:
Однако, я думаю, они неправильно назвали роли объектов, и я думаю, что
- То, что они называют View с объединенным контроллером, фактически является только представлением.
- То, что они называют Model, фактически является только контроллером.
- Если вы действительно хотите иметь модель, она будет где-то там, где есть их "данные".
Я говорю о обычном и разумном способе использования компонента Qt model/view в вашем приложении. Вот причины:
- Обычно это компонент Qt, который используется как есть, без добавления какой-либо логики контроллера, специфичной для ваших объектов.
- Это вряд ли модель, просто потому, что вы должны реализовать несколько Qt-методов, таких как rowCount, columnCount, данные и т.д., которые не имеют ничего общего с вашей моделью. На самом деле в контроллерах есть типичные модельные методы. Конечно, вы можете реализовать как логику логики , так и здесь, но сначала это будет очень плохой дизайн кода, а во-вторых, вы должны объединить Controller и Model not Controller и View, как они заявляют.
- Как говорится в разуме 2. если вы хотите отделить модельную логику, что она, разумеется, не является синим полем на изображении, а скорее пунктирным полем "Данные" (обмениваясь данными с реальными данными).
Является ли Qt неправильным в своей терминологии, или это только я, кто не понимает? (Кстати: причина, по которой это не академический вопрос, заключается в том, что я начал кодировать свой проект после их наименования, и вскоре я узнал, что код явно не прав. Только после этого, когда я понял, что я должен не пытайтесь поставить модельную логику в то, что они называют Model)