У меня есть вопрос, касающийся использования инфраструктуры MVC для игры в блэкджек, которую я пишу в Java. Как я понимаю, моя модель будет классом, который хранит состояние игры, а точнее, каждую руку игрока. Внутри модельного класса у меня будет массив слушателей, которые будут получать уведомления каждый раз, когда изменяется состояние игры (т. Е. Игрок берет новую карту).
Этими слушателями будет мой зритель, который является классом, который обрабатывает отображение игры. Этот класс будет реализовывать интерфейс ActionListener, и каждый раз, когда модель изменяется, он вызывает / "уведомляет" метод actionPerformed моего зрителя.
Мой вопрос таков:
У меня есть два JPanel, каждый из которых посвящен отображению руки соответствующего игрока. Когда игрок берет новую карту, на панель будет добавлен новый ImageIcon. Мой вопрос: как класс зрителя узнает, какая карта была добавлена в руку игрока?
Полагаю, я мог бы сохранить руку игрока до события уведомления, а затем по событию уведомления сравнить новое состояние со старым, чтобы выяснить, что изменилось. Я здесь полный новичок, поэтому могу ошибаться, но это немного утомительно.
Существует ли более эффективный / распространенный способ определения того, что изменилось в модели между состоянием до и после? Другое решение будет перерисовывать всю панель каждый раз, когда происходит уведомление? Это была бы лучшая идея?