Prototype

Intent

  • It is used when the type of objects to create is determined by a prototypical instance, which is cloned to produce new objects.

  • This pattern is used to avoid subclasses of an object creator in the client application, like the factory method pattern does and to avoid the inherent cost of creating a new object in the standard way (e.g., using the 'new' keyword) when it is prohibitively expensive for a given application.

Problems

  • How can objects be created so that which objects to create can be specified at run-time?

  • How can dynamically loaded classes be instantiated?

Solutions

  • Define a Prototype object that returns a copy of itself.

  • Create new objects by copying a Prototype object.

Advantages

✅ Prototype pattern also lets us create copies of objects without depending on the concrete classes. ✅ Can get rid of repeated initialization code in favor of cloning pre-built prototypes.

Disadvantages

❌ It's difficult to clone classes that have circular references, Interesting read


Note

💡 Serialization-deserialization can be used to clone an object. 💡 Copy constructor is another way of cloning.

Last updated