0% found this document useful (0 votes)
326 views7 pages

Prototype Design Pattern

The document discusses the prototype design pattern in Java. The prototype pattern is used to create objects by cloning an existing object rather than creating an object from scratch. This avoids the cost of initializing a new object and reduces the burden on the Java virtual machine. To implement cloning, a class must implement the Cloneable interface and override the clone() method. Cloning creates a copy of the object but does not execute the object's constructor. The prototype pattern is useful when creating objects is time-consuming and a similar existing object can be cloned and modified instead.

Uploaded by

kasim
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
326 views7 pages

Prototype Design Pattern

The document discusses the prototype design pattern in Java. The prototype pattern is used to create objects by cloning an existing object rather than creating an object from scratch. This avoids the cost of initializing a new object and reduces the burden on the Java virtual machine. To implement cloning, a class must implement the Cloneable interface and override the clone() method. Cloning creates a copy of the object but does not execute the object's constructor. The prototype pattern is useful when creating objects is time-consuming and a similar existing object can be cloned and modified instead.

Uploaded by

kasim
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

JAVA Means DURGA SOFT

DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page 1
JAVA Means DURGA SOFT

Prototype Design Pattern


The prototype means making a clone. This implies cloning of an object to avoid creation.
If the cost of creating a new object is large and creation is resource intensive, we clone the
object. We use the interface Cloneable and call its method clone() to clone the object.
Problem: If you create a new object in regular manner based on the existing objects & its data
then it gives much burden to JVM because the new object has to fulfill all the formalities of
object creation from scratch level including constructor execution also.
Solution: Use Prototype design pattern, Which says create a new object through cloning
process which reduces burden on JVM by avoiding some formalities of object creation like
constructor execution.

Note: While creating java class object through cloning process the constructor will not be
executed in order to avoid the initialization again by the programmer.

Usage:

When creating an object is time consuming and a costly affair and you already have a most
similar object instance in hand, then you go for prototype pattern. Instead of going through a
time consuming process to create a complex object, just copy the existing similar object and
modify it according to your needs.

DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page 2
JAVA Means DURGA SOFT

Rules to Follow To perform Cloning on Java Class Object: You can make a copy of any Java
object using the clone method.

E.g. JObj j1 = (JObj)j0.clone();

The clone method always returns an object declared to have a return type of Object. Thus you

must cast it to the actual type of the object that you are cloning. Three other significant

Restrictions apply to this method:

 It is a protected method and can be called only from within the same class or a subclass.
 You can clone only objects that are declared to implement the Cloneable interface. All
arrays are considered to implement the Cloneable interface.
 Any object whose class is Object does not implement Cloneable and throws the
CloneNotSupported Exception.

Sample Code

// PrototypeTest.java

import java.lang.*;

class Test implements Cloneable

int x;

String s;

public Test(int y,String r)

this.x=y;

this.s=r;

System.out.println("Test: 2- arg Constructor");

DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page 3
JAVA Means DURGA SOFT

public Object clone()

try

//ProtoType Pattern Logic

return super.clone();

catch(Exception e)

e.printStackTrace();

return null;

//Normal method to display Values

public String display()

return "Value of X ="+x+" & S ="+s;

public class PrototypeTest

public static void main(String[] args) throws Exception

DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page 4
JAVA Means DURGA SOFT

Test t1=new Test(10,"Durga");// Object creation in Normal Way

System.out.println("Hadscode of T1 Object is : "+t1.hashCode());

System.out.println(t1.display());

Test t2=(Test)t1.clone();// Object through Cloning Process

System.out.println("Hadscode of T2 Object is : "+t2.hashCode());

System.out.println(t2.display());

//do some modifications

System.out.println("After Performing Modifications:");


DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page 5
JAVA Means DURGA SOFT

t1.x=20;

System.out.println(t1.display());

System.out.println(t2.display());

Output

DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page 6
JAVA Means DURGA SOFT

DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page 7

You might also like