Aula 21

Padrão Observer

A intenção do padrão Observer é “definir uma dependência de um para muitos, entre os objetos, para que quando um objeto altera o seu estado, todos os que estão dependentes dele são notificados e atualizados automaticamente”.

Nas implementações orientadas a objetos do padrão Observer é habitual adicionar-se um atributo a todos os potenciais Subjects, que guarda a lista de Observers interessados em cada um deles. Quando um Subject é alterado, chama um método de notificação, que se encarrega de chamar um método de atualização em cada Observer interessado.

O uso deste padrão dá-se nos seguinte casos:

- Quando uma abstração tem dois aspectos, um dependente do outro. Encapsular tais aspectos em objetos separados permite que variem e sejam reusados separadamente.
- Quando uma mudança a um objeto requer mudanças a outros e você não sabe quantos outros objetos devem mudar.
- Quando um objeto deve ser capaz de avisar outros sem fazer suposições sobre quem são os objetos. Em outras palavras, sem criar um acoplamento fonte entre os objetos.

Bibliografia
http://www.devmedia.com.br/articles/viewcomp.asp?comp=2065&hl=

http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/arqu/observer.htm

Nenhum comentário: