Observer
Quando queremos avisar o termino de um método normalmente utilizamos return 1 ou return true, false, dentre outros processos que indicam que o processo foi executado ou em que parte do processo o código esta executando. Pensando em uma estruturação de objetos esta prática pode ser considerada errada, pois isso é uma programação procedural dentro de um objeto. Para enviarmos o fim da execução ou até mesmo em que "pé" esta o processo de atualização, inserção , Utilizaremos o Observer Pattern.
A utilização é um objeto que será observado por um ou mais objetos , que são os observadores, que obviamente são associados como observadores deste objeto, e quando o observador disparar um método de notificação, todos os objetos associados (os observadores) executarão cada um sua rotina específica, assim fazendo com que o processo seja organizado e evitando colocar instancias de objetos dentro de outros objetos ou até mesmo um aninhado de instancias para cada objeto que irá executar algo.
O padrão Observer permite que objetos interessados sejam avisados da mudança de estado ou outros eventos ocorrendo num outro objeto
O Observer é composto de duas partes, o Subject que é o objeto que muda de estado com uma frequência imprevisível e os Observers que devem pedir que sejam notificados das mudanças de estado do Subject.
O padrão Observer cria uma dependência de um-para-muitos entre objetos de tal forma que quando o estado de um objeto é modificado, suas dependências sejam automaticamente notificadas.