= Solution
The \b[<Prototype pattern> is a <creational pattern> that creates new <software objects> by copying an existing configured object through a common cloning <object interface>]. A client keeps or selects a prototype and requests a copy, without naming the concrete <software class> or repeating its construction recipe.
It is useful when the concrete type is selected at runtime, when many objects share a configuration, or when reconstructing an initialized object is expensive. For example, a drawing application can duplicate a configured graphical object through the same interface for many shape classes. The contract must specify what is copied: nested mutable state may require a <deep copy>, whereas a shallow copy would retain <reference aliasing>. A copy should preserve the intended configuration while allowing independent changes where promised.
Back to article page