Я действительно не понимаю, как разделить класс для модели и представления.View and Model in Java MVC game
Предположим, у меня есть класс Cat, который имеет некоторые параметры, такие как цвет, возраст, положение на карте и некоторые другие вещи. Я думал, что лучший способ создать пользовательскую картину - переопределить метод paintComponent
. Однако класс Cat должен быть в модели, и он не должен знать ничего о том, как он визуализируется.
Как рисовать кошку? Предположим, что он представлен массивом изображений, а модель имеет переменное направление, которое может содержать int от 0 до 3, которое связано с изображениями в массиве. Что нужно сделать, чтобы нарисовать кошку? Должен ли он просто где-то внутри:
drawImage(model.getCat().getArray(model.getCat().getFrame())) ?
Хорошо. Давайте возьмем класс «Cell» из вашей статьи. Он содержит метод 'paint()', но все еще находится внутри пакета модели. Правильно ли это? Он знает, что такое рецепт для рендеринга, хотя модель не должна знать (исправить меня, если я ошибаюсь), что-то о рендеринге. –
@hejcz: Вот что я сказал, когда говорил о классе Game2048Model. это также справедливо для класса Cell. «Этот класс также привлекает сетку игр. Я знаю, я сказал ранее, что я отделяю модель от представления. Причина, по которой код чертежа включен в модель, заключается в том, что для объектов Java проще рисовать. входит в модель, ** выполняется ** как часть представления. " –
Хорошо. Значит, это не STRICT MVC, но есть идея? Я благодарю вас за помощь и статью. Большое вам спасибо за помощь. –