Middle
In what cases can the prototype pattern be used?
sobes.tech AI
Answer from AI
The prototype pattern is used in the following cases:
- When creating an object is an expensive operation (in terms of time or resources), and there is a need to create many similar objects.
- When the class hierarchy for creating objects is too deep or complex, and client code should not depend on specific creator classes.
- When it is necessary to create an object with a certain state that can be copied.
- When the classes of objects to be created are determined at runtime.
Example of simple copying (without considering deep copying of nested objects):
class Prototype implements Cloneable {
private String value;
public Prototype(String value) {
this.value = value;
}
public String getValue() {
return value;
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
// Usage
Prototype original = new Prototype("initial");
try {
Prototype copy = (Prototype) original.clone();
System.out.println(copy.getValue()); // initial
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}