{"id":1305,"date":"2017-01-23T06:18:51","date_gmt":"2017-01-23T06:18:51","guid":{"rendered":"http:\/\/blog.verbat.com\/?p=1305"},"modified":"2024-05-22T05:28:48","modified_gmt":"2024-05-22T05:28:48","slug":"creational-design-patterns-verbat","status":"publish","type":"post","link":"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/","title":{"rendered":"Design Patterns: Creational Patterns &#8211; Series 1\/3"},"content":{"rendered":"<p>Software engineering is an amalgamation of a number of concepts, designs and other factors. You explore a bit, start to understand things, and then you realize there\u2019s more to it than what you just understood. But for now, let\u2019s stick to exploring one unique component of software engineering &#8211;\u00a0design patterns.<\/p>\n<p>Basically, a design pattern is just a contextual reusable solution to a commonly occurring problem in software design. It can also be a template that explains ways to solve a problem, and applicable in many different situations in real-world application development, particularly in <a title=\".NET Development\" href=\"https:\/\/www.verbat.com\/software-development\" target=\"_blank\" rel=\"noopener noreferrer\">.NET development<\/a>.<\/p>\n<h3>What design patterns can do<\/h3>\n<p>In a nutshell, a design pattern:<\/p>\n<ul>\n<li>Hastens <a title=\"Software Development\" href=\"https:\/\/www.verbat.com\/software-development\" target=\"_blank\" rel=\"noopener noreferrer\">Software Development<\/a> process by providing tested development paradigms<\/li>\n<li>Helps prevent issues that are difficult to detect but can cause major problems<\/li>\n<li>Improves code readability<\/li>\n<\/ul>\n<p>In addition to this, design patterns can also help enhance flexibility. But when not used wisely, design patterns may degrade application performance while achieving that required flexibility.<\/p>\n<h3>Classification of design patterns<\/h3>\n<p>They were originally categorized into three:<\/p>\n<ul>\n<li>Creational patterns<\/li>\n<li>Structural patterns<\/li>\n<li>Behavioral patterns<\/li>\n<\/ul>\n<p>Another classification was introduced later which proposed the idea of applying design patterns at the architecture level of a software. <a href=\"https:\/\/www.verbat.com\/software-development\">Model-View-Controller<\/a> (MVC) pattern is an example.<\/p>\n<h3>Creational patterns<\/h3>\n<p>In this part of the blog series, let\u2019s get into the details of the first category &#8211;\u00a0<strong>Creational patterns<\/strong>.<\/p>\n<p>They primarily deal with creating objects that are necessary for a particular scenario. They streamline object creation, thereby reducing the likelihood of certain design problems.<\/p>\n<p>They are further classified into Class-creational patterns and Object-creational patterns. Class-creational patterns, like the name suggests, deals with class instances while the latter deals with object creation.<\/p>\n<p>5 of the most popular creational patterns include:<\/p>\n<ul>\n<li>Abstract factory pattern<\/li>\n<li>Factory method pattern<\/li>\n<li>Builder pattern<\/li>\n<li>Prototype pattern<\/li>\n<li>Singleton pattern<\/li>\n<\/ul>\n<p>Here\u2019s a brief summary of each pattern and the purpose they serve.<\/p>\n<h3>Abstract factory pattern<\/h3>\n<p>This design patterns provides various ways to capsulize a group of factory objects without specifying their concrete classes. The client software normally creates an abstract factory implementation first, and then uses the generic interface to create concrete objects that are part of the theme without knowing the objects that are created from each factory.<\/p>\n<p>The merit is that the pattern allows interchanging the implementations during runtime. They don\u2019t have to change the code for that either. However, the system can become difficult to debug if the levels of abstraction passes a certain limit.<\/p>\n<h3>Factory method pattern<\/h3>\n<p>Problems arise when objects are created without specifying their class. A design pattern used in class-based programming, factory method pattern uses factory methods to deal with those problems. For this, the pattern creates objects without using constructors by using a factory method.<\/p>\n<p>The objects will either be implemented by child classes after it\u2019s specified in an interface, or implemented in a base class. They can also be overridden by derived classes if necessary. Its reliance on inheritance is quite clear from the way it works, and it doesn\u2019t require initialization. Like abstract factory pattern, the factory method pattern also enables polymorphism. <em>A good example is \u2018javax.xml.parsers\u2019 package, which features a lot of factories.<\/em><\/p>\n<h3>Builder pattern<\/h3>\n<p>To understand Builder pattern, you should know what a telescoping constructor anti-pattern is. When object constructor parameter combinations are increased, the result is a long list of constructors. This is where the telescoping constructor anti-pattern occurs. Builder pattern is meant to find a solution for this, by using a builder. The builder receives each initialization parameters step by step, to return a constructed object. It can also be used for objects that contain flat data (those that can\u2019t be edited easily), and for encapsulating construction and representation codes. The only disadvantage is that the pattern needs a separate ConcreteBuilder for each type of product.<\/p>\n<h3>Protoype pattern<\/h3>\n<p>When a prototypical instance is used to determine the type of the objects that are to be created, the prototype pattern is used. The objects created can be cloned to generate new objects. The pattern helps avoid subclasses of an object creator, just like an abstract factory pattern.<\/p>\n<p>In order to implement the prototype pattern, an abstract base class is necessary. This base class should specify a pure <em>virtual clone() method<\/em>. The client calls the clone() method on the prototype instead of invoking a new operator on some class name. Then a factory method with a parameter is called (that which designates the desired derived class) or invoke the clone() method provided by another pattern.<\/p>\n<p>Unlike factory method pattern, the prototype requires initialization but doesn\u2019t require subclassing.<\/p>\n<h3>Singleton pattern<\/h3>\n<p>This pattern primarily serves the purpose of restricting the instantiation of a class to a single object. Singleton pattern is ideal when only one object is required to harmonize actions across the system. What makes singleton patterns unique is the fact they are used by other patterns like abstract factory, prototype, and builder in their implementation. State objects are also often categorized as singletons.<\/p>\n<p>Singleton patterns are often preferred to global variables as well. This is because they permit lazy allocation and initialization, whereas global variables almost always use up a lot of resources.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Software engineering is an amalgamation of a number of concepts, designs and other factors. You explore a bit, start to understand things, and then you realize there\u2019s more to it than what you just understood. But for now, let\u2019s stick to exploring one unique component of software engineering &#8211;\u00a0design patterns. Basically, a design pattern is [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":4678,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[92],"tags":[185,242,262,590,611,635],"class_list":["post-1305","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development","tag-behavioral-patterns","tag-creational-patterns","tag-design-patterns","tag-software-design","tag-structural-patterns","tag-verbat-technologies"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Design Patterns: Creational Patterns - Series 1\/3 - Verbat<\/title>\n<meta name=\"description\" content=\"Master creational patterns! Learn to design efficient software with factory, singleton, and builder patterns.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Design Patterns: Creational Patterns - Series 1\/3 - Verbat\" \/>\n<meta property=\"og:description\" content=\"Master creational patterns! Learn to design efficient software with factory, singleton, and builder patterns.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/\" \/>\n<meta property=\"og:site_name\" content=\"Software Development Company Dubai UAE - Verbat Technologies\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/verbatltd\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-23T06:18:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-22T05:28:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2017\/02\/DESIGN-PATTERNS-CREATIONAL-PATTERNS-SERIES-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Prashant Thomas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@verbatltd\" \/>\n<meta name=\"twitter:site\" content=\"@verbatltd\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prashant Thomas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/\"},\"author\":{\"name\":\"Prashant Thomas\",\"@id\":\"https:\/\/www.verbat.com\/blog\/#\/schema\/person\/6357adb182b0f5f7b9d127b309d1e1f9\"},\"headline\":\"Design Patterns: Creational Patterns &#8211; Series 1\/3\",\"datePublished\":\"2017-01-23T06:18:51+00:00\",\"dateModified\":\"2024-05-22T05:28:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/\"},\"wordCount\":865,\"publisher\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2017\/02\/DESIGN-PATTERNS-CREATIONAL-PATTERNS-SERIES-1.jpg\",\"keywords\":[\"Behavioral Patterns\",\"Creational Patterns\",\"Design Patterns\",\"Software Design\",\"Structural Patterns\",\"Verbat Technologies\"],\"articleSection\":[\"Software Development\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/\",\"url\":\"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/\",\"name\":\"Design Patterns: Creational Patterns - Series 1\/3 - Verbat\",\"isPartOf\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2017\/02\/DESIGN-PATTERNS-CREATIONAL-PATTERNS-SERIES-1.jpg\",\"datePublished\":\"2017-01-23T06:18:51+00:00\",\"dateModified\":\"2024-05-22T05:28:48+00:00\",\"description\":\"Master creational patterns! Learn to design efficient software with factory, singleton, and builder patterns.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/#primaryimage\",\"url\":\"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2017\/02\/DESIGN-PATTERNS-CREATIONAL-PATTERNS-SERIES-1.jpg\",\"contentUrl\":\"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2017\/02\/DESIGN-PATTERNS-CREATIONAL-PATTERNS-SERIES-1.jpg\",\"width\":1200,\"height\":800,\"caption\":\"Creational Patterns\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.verbat.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Design Patterns: Creational Patterns &#8211; Series 1\/3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.verbat.com\/blog\/#website\",\"url\":\"https:\/\/www.verbat.com\/blog\/\",\"name\":\"Verbat Technologies\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.verbat.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.verbat.com\/blog\/#organization\",\"name\":\"Verbat Technologies\",\"url\":\"https:\/\/www.verbat.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.verbat.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2024\/04\/verbatltd_logo.jpg\",\"contentUrl\":\"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2024\/04\/verbatltd_logo.jpg\",\"width\":200,\"height\":200,\"caption\":\"Verbat Technologies\"},\"image\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/verbatltd\",\"https:\/\/x.com\/verbatltd\",\"https:\/\/www.linkedin.com\/company\/verbatltd\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.verbat.com\/blog\/#\/schema\/person\/6357adb182b0f5f7b9d127b309d1e1f9\",\"name\":\"Prashant Thomas\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.verbat.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"caption\":\"Prashant Thomas\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Design Patterns: Creational Patterns - Series 1\/3 - Verbat","description":"Master creational patterns! Learn to design efficient software with factory, singleton, and builder patterns.","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:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/","og_locale":"en_US","og_type":"article","og_title":"Design Patterns: Creational Patterns - Series 1\/3 - Verbat","og_description":"Master creational patterns! Learn to design efficient software with factory, singleton, and builder patterns.","og_url":"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/","og_site_name":"Software Development Company Dubai UAE - Verbat Technologies","article_publisher":"https:\/\/www.facebook.com\/verbatltd","article_published_time":"2017-01-23T06:18:51+00:00","article_modified_time":"2024-05-22T05:28:48+00:00","og_image":[{"width":1200,"height":800,"url":"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2017\/02\/DESIGN-PATTERNS-CREATIONAL-PATTERNS-SERIES-1.jpg","type":"image\/jpeg"}],"author":"Prashant Thomas","twitter_card":"summary_large_image","twitter_creator":"@verbatltd","twitter_site":"@verbatltd","twitter_misc":{"Written by":"Prashant Thomas","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/#article","isPartOf":{"@id":"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/"},"author":{"name":"Prashant Thomas","@id":"https:\/\/www.verbat.com\/blog\/#\/schema\/person\/6357adb182b0f5f7b9d127b309d1e1f9"},"headline":"Design Patterns: Creational Patterns &#8211; Series 1\/3","datePublished":"2017-01-23T06:18:51+00:00","dateModified":"2024-05-22T05:28:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/"},"wordCount":865,"publisher":{"@id":"https:\/\/www.verbat.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/#primaryimage"},"thumbnailUrl":"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2017\/02\/DESIGN-PATTERNS-CREATIONAL-PATTERNS-SERIES-1.jpg","keywords":["Behavioral Patterns","Creational Patterns","Design Patterns","Software Design","Structural Patterns","Verbat Technologies"],"articleSection":["Software Development"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/","url":"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/","name":"Design Patterns: Creational Patterns - Series 1\/3 - Verbat","isPartOf":{"@id":"https:\/\/www.verbat.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/#primaryimage"},"image":{"@id":"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/#primaryimage"},"thumbnailUrl":"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2017\/02\/DESIGN-PATTERNS-CREATIONAL-PATTERNS-SERIES-1.jpg","datePublished":"2017-01-23T06:18:51+00:00","dateModified":"2024-05-22T05:28:48+00:00","description":"Master creational patterns! Learn to design efficient software with factory, singleton, and builder patterns.","breadcrumb":{"@id":"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/#primaryimage","url":"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2017\/02\/DESIGN-PATTERNS-CREATIONAL-PATTERNS-SERIES-1.jpg","contentUrl":"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2017\/02\/DESIGN-PATTERNS-CREATIONAL-PATTERNS-SERIES-1.jpg","width":1200,"height":800,"caption":"Creational Patterns"},{"@type":"BreadcrumbList","@id":"https:\/\/www.verbat.com\/blog\/creational-design-patterns-verbat\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.verbat.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Design Patterns: Creational Patterns &#8211; Series 1\/3"}]},{"@type":"WebSite","@id":"https:\/\/www.verbat.com\/blog\/#website","url":"https:\/\/www.verbat.com\/blog\/","name":"Verbat Technologies","description":"","publisher":{"@id":"https:\/\/www.verbat.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.verbat.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.verbat.com\/blog\/#organization","name":"Verbat Technologies","url":"https:\/\/www.verbat.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.verbat.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2024\/04\/verbatltd_logo.jpg","contentUrl":"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2024\/04\/verbatltd_logo.jpg","width":200,"height":200,"caption":"Verbat Technologies"},"image":{"@id":"https:\/\/www.verbat.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/verbatltd","https:\/\/x.com\/verbatltd","https:\/\/www.linkedin.com\/company\/verbatltd"]},{"@type":"Person","@id":"https:\/\/www.verbat.com\/blog\/#\/schema\/person\/6357adb182b0f5f7b9d127b309d1e1f9","name":"Prashant Thomas","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.verbat.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","caption":"Prashant Thomas"}}]}},"_links":{"self":[{"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/posts\/1305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/comments?post=1305"}],"version-history":[{"count":3,"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/posts\/1305\/revisions"}],"predecessor-version":[{"id":5551,"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/posts\/1305\/revisions\/5551"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/media\/4678"}],"wp:attachment":[{"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/media?parent=1305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/categories?post=1305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/tags?post=1305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}