{"id":5760,"date":"2022-03-30T04:36:03","date_gmt":"2022-03-30T04:36:03","guid":{"rendered":"https:\/\/studysection.com\/blog\/?p=5760"},"modified":"2022-03-30T06:24:19","modified_gmt":"2022-03-30T06:24:19","slug":"strategy-pattern-in-salesforce-apex","status":"publish","type":"post","link":"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/","title":{"rendered":"Strategy pattern in Salesforce Apex"},"content":{"rendered":"<p>In the Strategy pattern, we implement multiple solutions for the same problem and solutions can be selected at run time depending on the condition.<br \/>\nIn <a href=\"https:\/\/studysection.com\/blog\/what-is-apex\/\">Apex<\/a>, we can use custom metadata or custom settings to define these conditions.<br \/>\nLet&#8217;s understand this pattern by jumping to a solution via sudo-code.<br \/>\nSuppose you have multiple URLs and you need to use the appropriate URL at run time. We can configure this condition using Custom Metadata or custom Setting. for example. if we want to choose a URL depending on the profile we can define that in Metadata or Custom Setting.<br \/>\nIn this example, we will get 2 URLs and use them at run time depending on the condition.<br \/>\n<code>Public Class RedirectTo{<br \/>\n    public String url;<br \/>\n    public RedirectTo(){<br \/>\n   \t Id profileId= userinfo.getProfileId();<br \/>\n   \t String profileName=[Select Id,Name from Profile where Id=:profileId].Name;<br \/>\n   \t if(profileName.equals('System Administrator')){<br \/>\n   \t\t url = URLs.getSystemAdminURL();<br \/>\n   \t }<br \/>\n   \t else{<br \/>\n   \t\t url = URLs.getNonSystemAdminURL();<br \/>\n   \t }<br \/>\n    }<br \/>\n}<br \/>\nPublic class URLs{<br \/>\n    public static String getSystemAdminURL(){<br \/>\n   \t \/\/Code to genrate URL<br \/>\n    }<br \/>\n    public static String getNonSystemAdminURL(){<br \/>\n   \t \/\/Code to genrate URL<br \/>\n    }<br \/>\n}<\/code><\/p>\n<p><small><em>jQuery presents a tree-like structure of all the elements on a webpage simplifying the syntax and further manipulating such elements. The <a href=\"https:\/\/www.studysection.com\/jquery-3.x-advanced\">jQuery Certification exam<\/a> by StudySection will secure your fundamental knowledge and a basic understanding of jQuery as an asset to improve your skills.<\/em><\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Strategy pattern, we implement multiple solutions for the same problem and solutions can be selected at run time<\/p>\n","protected":false},"author":1,"featured_media":5761,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[42,41],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Strategy pattern in Salesforce Apex - SS Blog<\/title>\n<meta name=\"description\" content=\"In the Strategy pattern, we implement multiple solutions for the same problem and solutions can be selected at run time.\" \/>\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\/strategy-pattern-in-salesforce-apex\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Strategy pattern in Salesforce Apex - SS Blog\" \/>\n<meta property=\"og:description\" content=\"In the Strategy pattern, we implement multiple solutions for the same problem and solutions can be selected at run time.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/\" \/>\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=\"2022-03-30T04:36:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-30T06:24:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2022\/03\/Apex.png\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"200\" \/>\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=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/\"},\"author\":{\"name\":\"admin-studysection-blog\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\"},\"headline\":\"Strategy pattern in Salesforce Apex\",\"datePublished\":\"2022-03-30T04:36:03+00:00\",\"dateModified\":\"2022-03-30T06:24:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/\"},\"wordCount\":164,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"keywords\":[\"apex\",\"salesforce\"],\"articleSection\":[\"Learn and Grow\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/\",\"url\":\"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/\",\"name\":\"Strategy pattern in Salesforce Apex - SS Blog\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/#website\"},\"datePublished\":\"2022-03-30T04:36:03+00:00\",\"dateModified\":\"2022-03-30T06:24:19+00:00\",\"description\":\"In the Strategy pattern, we implement multiple solutions for the same problem and solutions can be selected at run time.\",\"breadcrumb\":{\"@id\":\"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/studysection.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Strategy pattern in Salesforce Apex\"}]},{\"@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":"Strategy pattern in Salesforce Apex - SS Blog","description":"In the Strategy pattern, we implement multiple solutions for the same problem and solutions can be selected at run time.","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\/strategy-pattern-in-salesforce-apex\/","og_locale":"en_US","og_type":"article","og_title":"Strategy pattern in Salesforce Apex - SS Blog","og_description":"In the Strategy pattern, we implement multiple solutions for the same problem and solutions can be selected at run time.","og_url":"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/","og_site_name":"Blog Posts on famous people, innovations and educational topics","article_publisher":"https:\/\/www.facebook.com\/studysection","article_published_time":"2022-03-30T04:36:03+00:00","article_modified_time":"2022-03-30T06:24:19+00:00","og_image":[{"width":300,"height":200,"url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2022\/03\/Apex.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":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/#article","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/"},"author":{"name":"admin-studysection-blog","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402"},"headline":"Strategy pattern in Salesforce Apex","datePublished":"2022-03-30T04:36:03+00:00","dateModified":"2022-03-30T06:24:19+00:00","mainEntityOfPage":{"@id":"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/"},"wordCount":164,"commentCount":0,"publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"keywords":["apex","salesforce"],"articleSection":["Learn and Grow"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/","url":"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/","name":"Strategy pattern in Salesforce Apex - SS Blog","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/#website"},"datePublished":"2022-03-30T04:36:03+00:00","dateModified":"2022-03-30T06:24:19+00:00","description":"In the Strategy pattern, we implement multiple solutions for the same problem and solutions can be selected at run time.","breadcrumb":{"@id":"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/studysection.com\/blog\/strategy-pattern-in-salesforce-apex\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/studysection.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Strategy pattern in Salesforce Apex"}]},{"@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":518,"_links":{"self":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/5760"}],"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=5760"}],"version-history":[{"count":2,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/5760\/revisions"}],"predecessor-version":[{"id":5763,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/5760\/revisions\/5763"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media\/5761"}],"wp:attachment":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media?parent=5760"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/categories?post=5760"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/tags?post=5760"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}