Take an object, let's call it a node. Say you occasionally modify these nodes and you want to record the time you've modified them. Is that modification time part of the state of the object or is it a property of the surrounding framework in which the modification was carried out?
An approch would be to do what version control systems like git do: equate a node with a branch in git, and a version of an article with a commit.
So in that case each node has an ArticleSnapshot (or whatever name you can come up with), which has an author, timestamp and text body, and is immutable. It has also a pointer to the previous version (or multiple previous versions, if you allow merges).
For ease of use, you could add delegation from a node to its current revision/snapshot, and a method that modifies the text, but under the hood it really stores a new snapshot.
If the content is stored in a database, you could even do that on the dabase level, with a trigger.
In reply to Re: So, what's an object attribute anyway?
by moritz
in thread So, what's an object attribute anyway?
by Nomad
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |