ObjectFactory A concrete class that maintains a list of objects that support the Prototype interface. This class instructs these objects to clone themselves and returns references to the clones to the requesting client.
Prototype The interface that defines a method for cloning instances of classes that implement this interface. This interface can be a hybrid, meaning that it not only defines the cloning method, but it defines other operations as well.
ConcretePrototype A concrete class that implements the Prototype interface. When the Clone method of the Prototype interface is invoked, an instance of this class will create a copy of itself and a reference to the copy will be returned to the calling program.