Prototype
Why Prototype : Need to duplicate objects with different dynamic types Prototype is particularly useful with static languages like C++, where classes are not objects, and little or no type information is available at run-time. Benefits: 1. Adding and removing products at run-time. 2. Specifying new objects by varying values 3. Specifying new objects by varying structure. 4. Reduced subclassing. 5. Configuring an application with classes dynamically. Difficulty: The implementation of clone operation: especially when their internals include objects that don't support copying or have circular references. Implementation Solutions: - Provide a polymorphic method that returns an instance of the same type as the object on whi...