Eu estava contando a um amigo meu do meu estudo no desenvolvimento de jogos, dizendo da propagação do método update() a cada Sprite nas iterações. Ele me deu uma idéia, de usar o Pattern Listener ao invés de propagar o método. Então aqui estão as minhas perguntas:
Como eu faço para tornar um objeto “listeneable”, ou seja, como eu crio um método addListener no meu objeto que me permita adicionar um listener a ele como eu faria com um componente Swing, por exemplo?
Outra coisa: como eu disparo um evento de outro método que atinja a todos os objetos “listeneable” aos quais eu adicionei um listener?
Pelo que sei Listener é um pattern JEE, para ouvir eventos dá uma olhada no pattern ‘Observer’, e neste Pattern você não define um objeto como ‘observeable’, e sim nos métodos que serão assistidos você adiciona as notificações.
Fox_McCloud
É exatamente isso. Eu não havia lembrado desse nome “observer”.
Mas onde eu leio sobre ele?
No pacote java.util existem classes e interfaces para implementação do padrão observer-observable. Esse é um padrão comportamental de projeto orientado a objetos. Foi catalogado pelo Erich gamma. et. al, Design Patterns. Esta é, sem dúvida, a melhor referência sobre o assunto.