UrbanPro
true

Learn Advanced Java coaching from the Best Tutors

  • Affordable fees
  • 1-1 or Group class
  • Flexible Timings
  • Verified Tutors

Search in

Design Pattern

Paras Chawla
29/05/2017 0 0

Prototype Design Pattern:

Ø Prototype pattern refers to creating duplicate object while keeping performance in mind.

Ø This pattern involves implementing a prototype interface which tells to create a clone of the current object.

Ø This pattern is used when creation of object directly is costly. For example, an object is to be created after a costly database operation.

Ø We can cache the object, returns its clone on next request and update the database as and when needed thus reducing database calls.

 Prototype DP involves cloning of object and thus object needs to:

 Ø Implement Cloneable interface

 Ø Override clone() of Object class

 public abstract class Payment implements Cloneable {

    

       protected double amount;

          

        public double getAmount() {

                return amount;

           }

 

           public void setAmount(double amount) {

                this.amount = amount;

           }

          

     public abstract void makePayment();

    

     public Object clone() {

                 Object clone = null;

                 try {

                    clone = super.clone();

                 } catch (CloneNotSupportedException e) {

                    e.printStackTrace();

                 }

                 return clone;

              }   

}

public class CreditCard extends Payment {

 

     public void makePayment() {

           System.out.println("Payment of "+amount+ " by Credit Card");

     }

 

}

 

public class CashPayment extends Payment {

 

     public void makePayment() {

           System.out.println("Payment of "+amount+" by Cash");

     }

    

}

 

public class PaymentCache {

 

     private Map<String, Payment> map = new HashMap();

 

     public Payment getPayment(String key) {

           Payment payment = map.get(key);

           return (Payment) payment.clone();

     }

 

     // Map of Objects which are frequently used...

     // Original objects are acting as template objects...

 

     public void loadCache() {

           CashPayment cash = new CashPayment();

           cash.setAmount(2000);

           map.put("cash", cash);

 

           CreditCard credit = new CreditCard();

           credit.setAmount(4000);

           map.put("credit", credit);

     }

}

 

public class Client {

 

     public static void main(String[] args) {

           PaymentCache cache= new PaymentCache();

           cache.loadCache();

          

           Payment payment=cache.getPayment("cash");

           payment.makePayment();

          

           Payment payment1=cache.getPayment("credit");

           payment1.makePayment();

          

     }

}

 

Output:

Payment of 2000.0 by Cash

Payment of 4000.0 by Credit Card

Application:

Session replication from one server to another server.

Generating the GUI having many numbers of similar controls.

Advantage of Prototype Pattern:

It reduces the need of subclassing.

It hides complexities of creating objects.

The clients can get new objects without knowing which type of object it will be.

It lets you add or remove objects at runtime.

Usage of Prototype Pattern:

When the classes are instantiated at runtime.

When the cost of creating an object is expensive or complicated.

When you want to keep the number of classes in an application minimum.

When the client application needs to be unaware of object creation and representation.

 

0 Dislike
Follow 0

Please Enter a comment

Submit

Other Lessons for You

HDFS Commands - Data Engineering
HDFS commands : HDFS commands will interact with namenode to show results some commands like cat ,tail will interact with datanode to show results HDFS help commands: hadoop fs -help ls list commands...

Ram Kumar | 10/06/2022

0 0
0

Different Data File Formats in Big Data
Overview In this lesson I will be explaining the different kinds of Data File formats used in Big Data, These are widely used but unspoken of. Anyone aspiring to be a Data Engineer/Data Analyst/ML...

Raghunandana S K | 17/03/2022

0 0
0

Glimpse on Lean Manufacturing
Value Stream Mapping: Value stream mapping (VSM) is one of the lean manufacturing techniques used to identify waste, reduce process cycle times, and implement process improvement. VSM is, also known as...

Sathish Kumar | 14/02/2022

3 0
0

A Brief Outline of the Anglo-Saxon Period in the History of English Literature
The Germanic tribes arrived in Britain around 600 A. D. The three main tribes. - the Angles, the Saxons and the Jutes - occupied different regions in Britain after defeating the inhabitants, the Celts....

Sharada Devi V. | 10/02/2022

0 0
0

Theoretical & Practical Aspect of FEA
Methods to Solve any Engineering Problems: - Analytical Method - Experimental Method - Numerical Method Different Numerical Merhods: - Finite Element Method - Finite Volume Method - Boundary...

Sathish Kumar | 28/01/2022

1 1
0
X

Looking for Advanced Java coaching Classes?

The best tutors for Advanced Java coaching Classes are on UrbanPro

  • Select the best Tutor
  • Book & Attend a Free Demo
  • Pay and start Learning

Learn Advanced Java coaching with the Best Tutors

The best Tutors for Advanced Java coaching Classes are on UrbanPro

Book a Free Demo

This website uses cookies

We use cookies to improve user experience. Choose what cookies you allow us to use. You can read more about our Cookie Policy in our Privacy Policy

UrbanPro.com is India's largest network of most trusted tutors and institutes. Over 55 lakh students rely on UrbanPro.com, to fulfill their learning requirements across 1,000+ categories. Using UrbanPro.com, parents, and students can compare multiple Tutors and Institutes and choose the one that best suits their requirements. More than 7.5 lakh verified Tutors and Institutes are helping millions of students every day and growing their tutoring business on UrbanPro.com. Whether you are looking for a tutor to learn mathematics, a German language trainer to brush up your German language skills or an institute to upgrade your IT skills, we have got the best selection of Tutors and Training Institutes for you. Read more