В шаблоне MVP и MVC вы хотите четко отделить представление от модели.
Но для отображения таких вещей, как значки, анимации, которые должны воспроизводиться, когда что-то происходит и т. Д., Модель должна сообщить представлению, как она хочет быть представлена. Например, значок на кнопке, которая выбирает элемент.
Таким образом, я думаю, что такие вещи, как изображения, данные кадров анимации и т. Д. Должны быть частью модели, поскольку элементы модели должны определять это. Но я также чувствую, что это не должно быть так. Таким образом, единственное, что я могу себе представить, это хранить где-то огромное отображение, которое отображает типы модели на репрезентативные данные. Это кажется мне огромным анти-паттерном.
Как бы вы структурировали этот материал в проекте? Где хранятся данные «как это должно выглядеть»? Внутри модели, внутри Presenter (отображение) или внутри View (отображение). Может быть, я упускаю что-то важное здесь.
Чтобы уточнить, откуда это происходит:
Предположим, у вас есть объекты, которые представлены в виде значков в списке. Все эти объекты имеют общий супертип, но каждый отличается по деталям и поэтому должен быть представлен разными значками. Более того, возможно, вы реализовали все как общий тип и определили его целое поведение только во время создания или настройки всего во время выполнения, поэтому у вас даже нет способа различать значки для отображения по типу. Таким образом, я бы посчитал, что этим объектам нужен аксессор, такой как «getImage», чтобы получить представление, которое они хотели бы иметь в GUI. Но иметь изображение, чтобы быть частью модели, кажется неправильным.
Чтобы представить общий способ формирования ответа, воображаемый проект может быть структурирован в следующих каталогах:
src/model/
src/view/
src/presenter/
Где будет находиться каждый тип / класс с какими методами?