{"id":8138,"date":"2025-02-14T05:00:43","date_gmt":"2025-02-14T05:00:43","guid":{"rendered":"https:\/\/studysection.com\/blog\/?p=8138"},"modified":"2025-02-14T05:22:48","modified_gmt":"2025-02-14T05:22:48","slug":"prototype-pattern-with-an-example","status":"publish","type":"post","link":"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/","title":{"rendered":"Prototype Pattern with an Example"},"content":{"rendered":"<p>The Prototype pattern is categorized as a creational design pattern, and its essence lies in the creation of new objects by duplicating an already existing object, referred to as the prototype. This particular pattern proves advantageous in scenarios where the process of creating an object is more intricate or resource-intensive compared to replicating an already established one. In <a href=\"https:\/\/studysection.com\/blog\/flyweight-pattern-in-python\/\">Python<\/a>, you can implement the Prototype pattern using the copy module or by defining a clone method in your classes.<\/p>\n<p><strong>Here&#8217;s a simple example in Python to illustrate the Prototype pattern:<\/strong><\/p>\n<p>import copy<\/p>\n<p><code># Prototype class<br \/>\nclass Prototype:<br \/>\ndef clone(self):<br \/>\n# Use the copy module to create a shallow copy of the object<br \/>\nreturn copy.copy(self)<\/code><\/p>\n<p><code># Concrete prototype class<br \/>\nclass Person(Prototype):<br \/>\ndef __init__(self, name, age):<br \/>\nself.name = name<br \/>\nself.age = age<\/code><\/p>\n<p><code> def display(self):<br \/>\nprint(f\"{self.name}, {self.age} years old\")<\/code><\/p>\n<p><code># Client code<br \/>\nif __name__ == \"__main__\":<br \/>\n# Create a prototype instance<br \/>\noriginal_person = Person(name=\"John\", age=30)<\/code><\/p>\n<p><code>  # To make new instances, clone the prototype<br \/>\nperson1 = original_person.clone()<br \/>\nperson2 = original_person.clone()<\/code><\/p>\n<p><code> # Modify the cloned instances<br \/>\nperson1.name = \"Jane\"<br \/>\nperson2.age = 25<\/code><\/p>\n<p><code> # Display the original and cloned instances<br \/>\noriginal_person.display()  # Output: John, 30 years old<br \/>\nperson1.display()          # Output: Jane, 30 years old<br \/>\nperson2.display()          # Output: John, 25 years old<\/code><\/p>\n<p><strong>In this example:<\/strong><\/p>\n<ol>\n<li>Prototype is an abstract class with a clone method. The clone method uses the copy module to create a shallow copy of the object.<\/li>\n<li>Person is a concrete prototype class that inherits from Prototype. It has attributes like name and age and a method display to print the person&#8217;s information.<\/li>\n<li>The client code creates an instance of the Person class as the original prototype. It then clones the prototype to create new instances (person1 and person2). Modifying the cloned instances doesn&#8217;t affect the original prototype.<\/li>\n<\/ol>\n<p>This pattern is useful when you want to create objects with similar properties but don&#8217;t want to go through the entire initialization process. It helps in achieving a balance between performance and flexibility in object creation.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Prototype pattern is categorized as a creational design pattern, and its essence lies in the creation of new objects<\/p>\n","protected":false},"author":1,"featured_media":8140,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Prototype Pattern with an Example<\/title>\n<meta name=\"description\" content=\"The Prototype pattern is categorized as a creational design pattern. Its essence is creating new objects by duplicating an already-existing object.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Prototype Pattern with an Example\" \/>\n<meta property=\"og:description\" content=\"The Prototype pattern is categorized as a creational design pattern. Its essence is creating new objects by duplicating an already-existing object.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Posts on famous people, innovations and educational topics\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/studysection\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-14T05:00:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-14T05:22:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2025\/02\/Add-a-subheading-39.png\" \/>\n\t<meta property=\"og:image:width\" content=\"940\" \/>\n\t<meta property=\"og:image:height\" content=\"788\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin-studysection-blog\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@studysection\" \/>\n<meta name=\"twitter:site\" content=\"@studysection\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin-studysection-blog\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/\"},\"author\":{\"name\":\"admin-studysection-blog\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\"},\"headline\":\"Prototype Pattern with an Example\",\"datePublished\":\"2025-02-14T05:00:43+00:00\",\"dateModified\":\"2025-02-14T05:22:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/\"},\"wordCount\":220,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"articleSection\":[\"Learn and Grow\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/\",\"url\":\"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/\",\"name\":\"Prototype Pattern with an Example\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/#website\"},\"datePublished\":\"2025-02-14T05:00:43+00:00\",\"dateModified\":\"2025-02-14T05:22:48+00:00\",\"description\":\"The Prototype pattern is categorized as a creational design pattern. Its essence is creating new objects by duplicating an already-existing object.\",\"breadcrumb\":{\"@id\":\"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/studysection.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prototype Pattern with an Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/studysection.com\/blog\/#website\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"name\":\"Blog Posts on famous people, innovations and educational topics\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/studysection.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/studysection.com\/blog\/#organization\",\"name\":\"StudySection\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"contentUrl\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"width\":920,\"height\":440,\"caption\":\"StudySection\"},\"image\":{\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/studysection\",\"https:\/\/twitter.com\/studysection\",\"https:\/\/www.instagram.com\/study.section\/\",\"https:\/\/www.linkedin.com\/company\/studysection\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\",\"name\":\"admin-studysection-blog\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"caption\":\"admin-studysection-blog\"},\"url\":\"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Prototype Pattern with an Example","description":"The Prototype pattern is categorized as a creational design pattern. Its essence is creating new objects by duplicating an already-existing object.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/","og_locale":"en_US","og_type":"article","og_title":"Prototype Pattern with an Example","og_description":"The Prototype pattern is categorized as a creational design pattern. Its essence is creating new objects by duplicating an already-existing object.","og_url":"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/","og_site_name":"Blog Posts on famous people, innovations and educational topics","article_publisher":"https:\/\/www.facebook.com\/studysection","article_published_time":"2025-02-14T05:00:43+00:00","article_modified_time":"2025-02-14T05:22:48+00:00","og_image":[{"width":940,"height":788,"url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2025\/02\/Add-a-subheading-39.png","type":"image\/png"}],"author":"admin-studysection-blog","twitter_card":"summary_large_image","twitter_creator":"@studysection","twitter_site":"@studysection","twitter_misc":{"Written by":"admin-studysection-blog","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/#article","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/"},"author":{"name":"admin-studysection-blog","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402"},"headline":"Prototype Pattern with an Example","datePublished":"2025-02-14T05:00:43+00:00","dateModified":"2025-02-14T05:22:48+00:00","mainEntityOfPage":{"@id":"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/"},"wordCount":220,"commentCount":0,"publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"articleSection":["Learn and Grow"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/","url":"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/","name":"Prototype Pattern with an Example","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/#website"},"datePublished":"2025-02-14T05:00:43+00:00","dateModified":"2025-02-14T05:22:48+00:00","description":"The Prototype pattern is categorized as a creational design pattern. Its essence is creating new objects by duplicating an already-existing object.","breadcrumb":{"@id":"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/studysection.com\/blog\/prototype-pattern-with-an-example\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/studysection.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Prototype Pattern with an Example"}]},{"@type":"WebSite","@id":"https:\/\/studysection.com\/blog\/#website","url":"https:\/\/studysection.com\/blog\/","name":"Blog Posts on famous people, innovations and educational topics","description":"","publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/studysection.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/studysection.com\/blog\/#organization","name":"StudySection","url":"https:\/\/studysection.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","contentUrl":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","width":920,"height":440,"caption":"StudySection"},"image":{"@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/studysection","https:\/\/twitter.com\/studysection","https:\/\/www.instagram.com\/study.section\/","https:\/\/www.linkedin.com\/company\/studysection"]},{"@type":"Person","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402","name":"admin-studysection-blog","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","caption":"admin-studysection-blog"},"url":"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/"}]}},"views":121,"_links":{"self":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/8138"}],"collection":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/comments?post=8138"}],"version-history":[{"count":3,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/8138\/revisions"}],"predecessor-version":[{"id":8142,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/8138\/revisions\/8142"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media\/8140"}],"wp:attachment":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media?parent=8138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/categories?post=8138"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/tags?post=8138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}