Цитата:
|
А не работает эта конструкция потому, что там каждый раз новый GameOverEvent создается. То есть для каждого экземпляра он свой. Естественно они не смогут слушать события других экземпляров. Если нужно, чтобы эта конструкция работала, объект должен быть один и тот же. Допустим, сделанный синглтоном.
|
То есть создаем один экземпляр GameOverEvent и просто передаем его в качестве аргумента конструктора того класса, где мы хотим вызывать его методы или подписаться на рассылаемые им события, а там внутри класса "получателя" сохраняем на него ссылку?
И насчет нескольких экземпляров GameOverEvent. У Мука вычитал следующие (как раз он рассказывает как как сделать пользовательское событие "gameOver"):
Цитата:
Любой экземпляр класса Game, создаваемый
классом Console, является получателем пользовательского события "gameOver",
которое возникает после окончания игры.
|
То есть я так понял можно создать множество экземпляров класса Game (в моем случае GameOverEvent)
и всех их подписать на события создаваемые в классе Game (в моем случае GameOverEvent). Я не совсем понимаю что вы имели ввиду под "То есть для каждого экземпляра он свой", под "он" имеется ввиду создаваемое событие в методе gameOverListener()?