Adding and removing products at run-time
Consequence
Specifying new objects by varying value
Consequence
Implementing the clone operation
Implementation
Initializing clones
Implementation
Intent/Purpose
Specify kinds of objects then create new objects by copying the prototype