Intent
Specify the kinds of objects to create using a prototypical instance, and
create new objects by copying the prototype.
Applicability
- to avoid building a class hierarchy of factories that parallels the class
hierarchy of products
- when the classes to instantiate are specified at run-time
- objects need to be created in a preconfigured state
Structure
[to do: diagram with Client, Prototype)
Consequences
- reduced subclassing
- easy to create preconfigured objects
- less flexible than a Factory Method
Implementation
- requires robust copying
- using a class instead of a prototype to parameterize object creatoin
Uses in JHotDraw