One of the most important parts of the prototype design pattern in OOP is that we don't create new objects from scratch, we just clone them using the clone() function from an existing object.
So is the clone() function a deep or shallow copy?
If it's a deep copy, than I understand everything, but if it's shallow one, it will be mess if two different objects (one created from another using a prototype pattern) watch same state objects, than it means that these object aren't different at all (they are linked as they share same state objects).
Can anyone clarify this situation to me?