Suggest an editImprove this articleRefine the answer for “When is the Prototype pattern used?”. Your changes go to moderation before they’re published.Approval requiredContentWhat you’re changing🇺🇸EN🇺🇦UAPreviewTitle (EN)Short answer (EN)**The Prototype pattern** is used in situations where creating an object from scratch is expensive, complex, or undesirable, and copying an existing instance is faster and simpler. **Key point:** Prototype is used when it matters to cut the cost of creation, avoid depending on concrete classes, and flexibly duplicate objects that are already configured.Shown above the full answer for quick recall.Answer (EN)Image**The Prototype pattern** is used in situations where creating an object from scratch is **expensive, complex, or undesirable**, and copying an existing instance is **faster and simpler**. --- ### 1. **When creating an object is too expensive** If an object requires lengthy initialization (for example, reading files, database queries, or loading resources), it is simpler to **create it once and then clone it**. Example: graphical shapes with textures or 3D models in games, a copy is created instantly instead of being loaded from disk every time. --- ### 2. **When the system must be independent of concrete classes** Client code can work through the `Prototype` interface without knowing which exact classes it is copying. This lets you **add new object types** without changing the program's logic. --- ### 3. **When the object already has the configuration you need** Sometimes it is simpler to **copy a ready-made template (prototype)** than to configure the fields manually from scratch every time. For example, a document form with pre-filled fields that the user then edits. --- ### 4. **When you need to create objects at runtime** If the type of the object to create is unknown until the program runs, but you have an instance of it, you can simply call `clone()`. This is how, for example, serialization systems, caching, and editors are built, where users create duplicates of elements. --- ### 5. **When you need fast cloning in large structures** Prototype is used for **bulk copying** of complex object graphs, where standard creation would be too slow. --- **Conclusion:** Prototype is used when it matters to **cut the cost of creation**, **avoid depending on concrete classes**, and **flexibly duplicate objects that are already configured**, especially in systems where speed, templates, and data reuse play a key role.For the reviewerNote to the moderator (optional)Visible only to the moderator. Helps review go faster.