Gostaria de saber como posso descobrir quando o estado de um objeto foi alterado sem necessidade que o design do objeto observado seja dirigido com este objetivo, como no caso da utilizacao do pattern observer.
Gostaria de observar qualquer objeto, mesmo que o mesmo não tenha sido escrito originalmente com o objetivo de notificar alguem quando seu estado é alterado.
Na hipótese de utilização de AOP ou Proxies seriam necessários a utilização de métodos setter/getter para que a mudança de estado do objeto seja percebida… estou certo?
No caso de IoC, eu não conheço, mas pelo pouco que li parece ser uma idéia muito interessante!
Agradeço muito suas sugestões, mas gostaria de aprofundar um pouco algumas idéias sugeridas.
Quanto a utilização de proxy: a minha idéia inicial era realmente utilizá-los mas ainda nao tenho muito claro como iria identificar a alteracao de estado do objeto… uma idéia seria, de alguma forma, antes da chamada de qualquer método do objeto, o proxy iria salvar o estado do objeto e quando o controle retornasse do objeto para o proxy, o estado do objeto seria comparado com o estado que o proxy havia registrado quando da entrada no método… se houvessem diferenças seria detectado a mudança de estado.
Gostaria esta idéia com vocês… de que forma ela poderia ser melhorada?
Bom, outra forma que poderia utilizar para detectar qual dos atributos do objeto foi alterado, seria através do empacotamento dos métodos setter em proxies e derivar o nome do atributo sendo alterado através do nome do método setter que está sendo usado.
Mas neste caso todos os atributos passíveis de modificação deveriam ter seu respectivo setter.