Almost every programmer did it once in his life: setting some flag if a variable’s value changed. There’s always lots of properties and you want to keep track if something changed
- in any property
- in a specific property
- or in some set of properties
I’m interested in different ways to implement the ‘dirty-flag’ functionality for the above situations, besides the standard object wide dirty flag being updated on each property change. There must be something better than putting ‘dirty = true’ in each setter: it just looks ugly and is a tedious work.
For my DAO I keep a copy of the original values as retrieved from the database. When I send it to be updated, I simply compare the original values with the current. It costs a little in processing but it is a lot better than having a dirty flag per property.
EDIT to further justify not having a dirty flag: if the property returns to its original value, there is no way to reflect that, the dirty flag continues dirty because the original value was lost.