{"id":1233,"date":"2022-07-19T21:23:10","date_gmt":"2022-11-22T01:02:27","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/uncategorized\/example-tutorial-for-the-strategy-design-pattern-in-java\/"},"modified":"2024-03-06T14:05:10","modified_gmt":"2024-03-06T14:05:10","slug":"example-tutorial-for-the-strategy-design-pattern-in-java","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/","title":{"rendered":"Strategy Design Pattern in Java tutorial"},"content":{"rendered":"<p>The strategy design pattern falls under the category of behavioral design patterns. It is employed when there are various algorithms available for a particular task, and the client determines the particular implementation to be used at runtime.<\/p>\n<h2>One possible native paraphrase for &#8220;Strategy Pattern&#8221; could be &#8220;Approach Methodology&#8221;.<\/h2>\n<p>The Strategy pattern, also referred to as the Policy Pattern, involves defining numerous algorithms and allowing the client application to pass the desired algorithm as a parameter. An exemplary instance of the strategy pattern is the Collections.sort() method, which takes a Comparator parameter. Depending on the various implementations of the Comparator interface, the objects are sorted in different manners. To illustrate, let&#8217;s create a simple Shopping Cart that encompasses two payment strategies: using a Credit Card or using PayPal. Initially, we will establish the interface for our strategy pattern example, which entails paying the specified amount. This interface will be named <a href=\"https:\/\/github.com\/xkcoding\/design-pattern\/blob\/master\/src\/main\/java\/com\/xkcoding\/design\/pattern\/behavioral\/strategy\/PaymentStrategy.java\">PaymentStrategy.java<\/a>.<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.design.strategy;\r\n\r\npublic interface PaymentStrategy {\r\n\r\n\tpublic void pay(int amount);\r\n}\r\n<\/code><\/pre>\n<p>We are now required to develop practical implementations of algorithms for processing payments via credit\/debit cards or PayPal. This will be done through the utilization of the CreditCardStrategy.java file.<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.design.strategy;\r\n\r\npublic class CreditCardStrategy implements PaymentStrategy {\r\n\r\n\tprivate String name;\r\n\tprivate String cardNumber;\r\n\tprivate String cvv;\r\n\tprivate String dateOfExpiry;\r\n\t\r\n\tpublic CreditCardStrategy(String nm, String ccNum, String cvv, String expiryDate){\r\n\t\tthis.name=nm;\r\n\t\tthis.cardNumber=ccNum;\r\n\t\tthis.cvv=cvv;\r\n\t\tthis.dateOfExpiry=expiryDate;\r\n\t}\r\n\t@Override\r\n\tpublic void pay(int amount) {\r\n\t\tSystem.out.println(amount +\" paid with credit\/debit card\");\r\n\t}\r\n\r\n}\r\n<\/code><\/pre>\n<p>One possible paraphrase could be:<\/p>\n<p>&#8220;Java code file for the PayPal payment strategy.&#8221;<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.design.strategy;\r\n\r\npublic class PaypalStrategy implements PaymentStrategy {\r\n\r\n\tprivate String emailId;\r\n\tprivate String password;\r\n\t\r\n\tpublic PaypalStrategy(String email, String pwd){\r\n\t\tthis.emailId=email;\r\n\t\tthis.password=pwd;\r\n\t}\r\n\t\r\n\t@Override\r\n\tpublic void pay(int amount) {\r\n\t\tSystem.out.println(amount + \" paid using Paypal.\");\r\n\t}\r\n\r\n}\r\n<\/code><\/pre>\n<p>Our algorithms for the strategy pattern example are now prepared. The implementation of the Shopping Cart and payment method will necessitate the input of a Payment strategy in Item.java.<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.design.strategy;\r\n\r\npublic class Item {\r\n\r\n\tprivate String upcCode;\r\n\tprivate int price;\r\n\t\r\n\tpublic Item(String upc, int cost){\r\n\t\tthis.upcCode=upc;\r\n\t\tthis.price=cost;\r\n\t}\r\n\r\n\tpublic String getUpcCode() {\r\n\t\treturn upcCode;\r\n\t}\r\n\r\n\tpublic int getPrice() {\r\n\t\treturn price;\r\n\t}\r\n\t\r\n}\r\n<\/code><\/pre>\n<p>One possible paraphrase for &#8220;ShoppingCart.java&#8221; could be &#8220;Java code for a shopping cart.&#8221;<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.design.strategy;\r\n\r\nimport java.text.DecimalFormat;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\npublic class ShoppingCart {\r\n\r\n\t\/\/List of items\r\n\tList&lt;Item&gt; items;\r\n\t\r\n\tpublic ShoppingCart(){\r\n\t\tthis.items=new ArrayList&lt;Item&gt;();\r\n\t}\r\n\t\r\n\tpublic void addItem(Item item){\r\n\t\tthis.items.add(item);\r\n\t}\r\n\t\r\n\tpublic void removeItem(Item item){\r\n\t\tthis.items.remove(item);\r\n\t}\r\n\t\r\n\tpublic int calculateTotal(){\r\n\t\tint sum = 0;\r\n\t\tfor(Item item : items){\r\n\t\t\tsum += item.getPrice();\r\n\t\t}\r\n\t\treturn sum;\r\n\t}\r\n\t\r\n\tpublic void pay(PaymentStrategy paymentMethod){\r\n\t\tint amount = calculateTotal();\r\n\t\tpaymentMethod.pay(amount);\r\n\t}\r\n}\r\n<\/code><\/pre>\n<p>Please take note that the payment method of the shopping cart necessitates the payment algorithm as an argument and does not retain it as a variable. Let&#8217;s evaluate our strategy pattern example setup using a basic program named ShoppingCartTest.java.<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.design.strategy;\r\n\r\npublic class ShoppingCartTest {\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\tShoppingCart cart = new ShoppingCart();\r\n\t\t\r\n\t\tItem item1 = new Item(\"1234\",10);\r\n\t\tItem item2 = new Item(\"5678\",40);\r\n\t\t\r\n\t\tcart.addItem(item1);\r\n\t\tcart.addItem(item2);\r\n\t\t\r\n\t\t\/\/pay by paypal\r\n\t\tcart.pay(new PaypalStrategy(\"myemail@example.com\", \"mypwd\"));\r\n\t\t\r\n\t\t\/\/pay by credit card\r\n\t\tcart.pay(new CreditCardStrategy(\"Pankaj Kumar\", \"1234567890123456\", \"786\", \"12\/15\"));\r\n\t}\r\n\r\n}\r\n<\/code><\/pre>\n<p>The program above produces the following result:<\/p>\n<pre class=\"post-pre\"><code>50 paid using Paypal.\r\n50 paid with credit\/debit card\r\n<\/code><\/pre>\n<h3>One possible paraphrase could be: &#8220;Class Diagram for the Strategy Design Pattern&#8221;<\/h3>\n<h3>Important considerations for the Strategy design pattern.<\/h3>\n<ul class=\"post-ul\">\n<li>We could have used composition to create instance variable for strategies but we should avoid that as we want the specific strategy to be applied for a particular task. Same is followed in Collections.sort() and Arrays.sort() method that take comparator as argument.<\/li>\n<li>Strategy Pattern is very similar to State Pattern. One of the difference is that Context contains state as instance variable and there can be multiple tasks whose implementation can be dependent on the state whereas in strategy pattern strategy is passed as argument to the method and context object doesn\u2019t have any variable to store it.<\/li>\n<li>Strategy pattern is useful when we have multiple algorithms for specific task and we want our application to be flexible to chose any of the algorithm at runtime for specific task.<\/li>\n<\/ul>\n<p>I hope you enjoyed my explanation of the Strategy Pattern in Java, and that concludes our discussion on this topic.<\/p>\n<p>&nbsp;<\/p>\n<p>more\u00a0 tutorials<\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/java-thread-ensuring-safety\/\" target=\"_blank\" rel=\"noopener\">Java thread ensuring Java code is thread-safe<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/convert-string-to-character-in-java\/\" target=\"_blank\" rel=\"noopener\">convert string to character array in Java.<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/addition-assignment-operator-in-java\/\" target=\"_blank\" rel=\"noopener\">Addition Assignment Operator mean in Java<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The strategy design pattern falls under the category of behavioral design patterns. It is employed when there are various algorithms available for a particular task, and the client determines the particular implementation to be used at runtime. One possible native paraphrase for &#8220;Strategy Pattern&#8221; could be &#8220;Approach Methodology&#8221;. The Strategy pattern, also referred to as [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-1233","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Strategy Design Pattern in Java tutorial - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"The Strategy pattern, also referred to as the Policy Pattern, involves defining numerous algorithms and allowing the client application\" \/>\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.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Strategy Design Pattern in Java tutorial\" \/>\n<meta property=\"og:description\" content=\"The Strategy pattern, also referred to as the Policy Pattern, involves defining numerous algorithms and allowing the client application\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-22T01:02:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-06T14:05:10+00:00\" \/>\n<meta name=\"author\" content=\"Benjamin Taylor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benjamin Taylor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/\"},\"author\":{\"name\":\"Benjamin Taylor\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\"},\"headline\":\"Strategy Design Pattern in Java tutorial\",\"datePublished\":\"2022-11-22T01:02:27+00:00\",\"dateModified\":\"2024-03-06T14:05:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/\"},\"wordCount\":507,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/\",\"name\":\"Strategy Design Pattern in Java tutorial - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2022-11-22T01:02:27+00:00\",\"dateModified\":\"2024-03-06T14:05:10+00:00\",\"description\":\"The Strategy pattern, also referred to as the Policy Pattern, involves defining numerous algorithms and allowing the client application\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Strategy Design Pattern in Java tutorial\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\",\"name\":\"Benjamin Taylor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"caption\":\"Benjamin Taylor\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Strategy Design Pattern in Java tutorial - Blog - Silicon Cloud","description":"The Strategy pattern, also referred to as the Policy Pattern, involves defining numerous algorithms and allowing the client application","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.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/","og_locale":"en_US","og_type":"article","og_title":"Strategy Design Pattern in Java tutorial","og_description":"The Strategy pattern, also referred to as the Policy Pattern, involves defining numerous algorithms and allowing the client application","og_url":"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2022-11-22T01:02:27+00:00","article_modified_time":"2024-03-06T14:05:10+00:00","author":"Benjamin Taylor","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Benjamin Taylor","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/"},"author":{"name":"Benjamin Taylor","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9"},"headline":"Strategy Design Pattern in Java tutorial","datePublished":"2022-11-22T01:02:27+00:00","dateModified":"2024-03-06T14:05:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/"},"wordCount":507,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/","url":"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/","name":"Strategy Design Pattern in Java tutorial - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2022-11-22T01:02:27+00:00","dateModified":"2024-03-06T14:05:10+00:00","description":"The Strategy pattern, also referred to as the Policy Pattern, involves defining numerous algorithms and allowing the client application","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/example-tutorial-for-the-strategy-design-pattern-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Strategy Design Pattern in Java tutorial"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9","name":"Benjamin Taylor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","caption":"Benjamin Taylor"},"url":"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/1233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=1233"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/1233\/revisions"}],"predecessor-version":[{"id":1681,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/1233\/revisions\/1681"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=1233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=1233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=1233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}