Objet Java, champs modifiés à l'écoute, design-pattern

Il existe une classe:

public class MyClass {
private String field1;
private String field2;
private String field3;
//getters, setters
}

Alors mettre à jour certains champs

MyClass myClass = new MyClass();
myClass.setField1("field1");
myClass.setField2(null);

Comment puis-je savoir quels champs de MyClass ont essayé d'être changé (invoqué, dans l'exemple ci-dessus champ1 et champ2)?
Quelle est la meilleure solution pour cela? Peut-être que certains design-pattern?
Une option consiste à créer HashSet de champs modifiés pour cet objet comme une propriété supplémentaire et de le mettre à jour à l'intérieur de chaque setter, mais il ne semble pas agréable.
Devrait-il être quelque chose comme Proxy de l'objet qui va être intercepter tous les appels de méthode (c'est à dire setXXX()) (par l'intermédiaire de réflexion Java?) ou autre chose?

Mise à JOUR
Il semble que chaque setter doit invoquer intérieure de la méthode ce qui ne semble pas agréable comme je l'ai dit. Et je n'ai pas besoin de notifier tous les autres objets sur les changements. Je voudrais stocker tous les états de cet objet, et d'avoir accès à ces changements plus tard.
En détails: si la méthode setFieldX invoquée alors fieldX devrait être marqué pour être mis à jour plus tard
P. S. Tous les champs ont des noms différents.
D'autres solutions à l'exception de la réflexion (j'en veux pour remplir l'objet via pure setter)?

Après cette mise à jour: Quel est l'objectif que vous souhaitez atteindre?
Plonus si la méthode setFieldX invoquée alors fieldX devrait être marqué pour être mis à jour plus tard.
Pourquoi voulez-vous mettre à jour plus tard? Quelle est la raison? Lorsque nous savons ce que vous voulez atteindre, nous pouvons vous aider à mieux. Dans l'exemple donné on ne voit pas pourquoi vous voulez le faire.
Plonus mise à Jour de la base de données ayant détaché de l'objet sélectionné uniquement des champs et de connaître les champs qui doivent être mis à jour.
Bender je vais essayer d'expliquer clairement. C'est Dto (pas de domaine objet). J'ai besoin de copier uniquement les champs pour objet de domaine qui ont été modifiées (à la fin de la scène). Au stade précoce, je ne veux pas stockés objet et de le comparer à elle. Je veux juste recueillir de l'information pour savoir ce qu'il faut changer plus tard. E. g. reconnaître la valeur NULLE de change et de la valeur NULL comme valeur par défaut.

OriginalL'auteur Alex | 2013-06-06