{"id":373,"date":"2015-07-14T21:14:57","date_gmt":"2015-07-14T18:14:57","guid":{"rendered":"https:\/\/gokhan-gokalp.com\/?p=373"},"modified":"2015-07-14T21:27:23","modified_gmt":"2015-07-14T18:27:23","slug":"c-strategy-pattern-kullanimi","status":"publish","type":"post","link":"https:\/\/gokhan-gokalp.com\/tr\/c-strategy-pattern-kullanimi\/","title":{"rendered":"C# Strategy Pattern Kullan\u0131m\u0131"},"content":{"rendered":"<p>Tasar\u0131m desenleri makale serimize yine\u00a0<strong>Behavioral<\/strong>\u00a0tasar\u0131m kal\u0131plar\u0131\u00a0grubunda yer alan <strong>Strategy<\/strong> tasar\u0131m deseni ile devam edece\u011fiz. A\u00e7\u0131k\u00e7as\u0131 en sevdi\u011fim <strong>GOF<\/strong>(Gang of Four) desenlerinden birisidir de diyebilirim. :)<\/p>\n<p>Evet haydi bakal\u0131m neymi\u015f bu <strong>Strategy<\/strong>?<\/p>\n<p>\u0130sminden de anla\u015f\u0131laca\u011f\u0131 \u00fczere bir i\u015fi yapabilecek\u00a0birden fazla algoritmam\u0131z var ise orada hemen <strong>Strategy<\/strong> tasar\u0131m deseni ben buraday\u0131m diye ba\u011f\u0131r\u0131r. :) En s\u0131k kullan\u0131lan tasar\u0131m deseni oldu\u011funu da belirtmek isterim.<\/p>\n<p>Neden kullanmal\u0131y\u0131z?, sorusuna bakt\u0131\u011f\u0131m\u0131zda ise size k\u0131saca \u015funu diyebilirim:<\/p>\n<blockquote><p>Yap\u0131lmas\u0131 istenilen bir i\u015fimiz var ve bu i\u015fi birden farkl\u0131 yollarla yapma ihtiyac\u0131m\u0131z var. Bu gibi durumlarda var olan i\u015fi ilgili s\u0131n\u0131f\u0131 s\u00fcrekli <strong>refactor<\/strong> ederek <strong>if-else<\/strong>\u00a0bloklar\u0131 ile\u00a0yapmak yerine, yeni bir s\u0131n\u0131f daha ekleyerek istenilen durumda ilgili i\u015fi ilgili s\u0131n\u0131fta yapmam\u0131za olanak sa\u011flar. B\u00f6ylece var olan s\u0131n\u0131f\u0131m\u0131z \u00fczerinde de\u011fi\u015fiklik yapmadan sistemimizi geli\u015ftirmi\u015f olaca\u011f\u0131z. Burada en \u00f6nemli tasar\u0131m prensiplerinden birisini olan <strong><a href=\"https:\/\/gokhan-gokalp.com\/open-closed-principle-ocp-acik-kapali-prensibi\/\" target=\"_blank\">Open-Closed<\/a><\/strong> prensibi s\u00f6z konusudur.<\/p><\/blockquote>\n<p>\u0130lgili desenimizin <strong>UML<\/strong> Diyagram\u0131na bakt\u0131\u011f\u0131m\u0131zda:<\/p>\n<p><a href=\"\/wp-content\/uploads\/2015\/07\/StrategyDiagram.gif\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-374 lazyload\" data-src=\"\/wp-content\/uploads\/2015\/07\/StrategyDiagram.gif\" alt=\"StrategyDiagram\" width=\"320\" height=\"120\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 320px; --smush-placeholder-aspect-ratio: 320\/120;\" \/><\/a>Diyagrama g\u00f6z att\u0131\u011f\u0131m\u0131zda <strong>Context<\/strong> ile <strong>Strategy<\/strong> s\u0131f\u0131n\u0131 aras\u0131nda\u00a0<strong>aggregation<\/strong>(bu t\u00fcr bir ili\u015fkide ilgili nesnelerin ya\u015fam d\u00f6ng\u00fcleri birbirlerinden ayr\u0131d\u0131r)<strong>\u00a0<\/strong>t\u00fcr\u00fcnde bir ili\u015fki oldu\u011funu g\u00f6rmekteyiz.<\/p>\n<p><strong>Strategy<\/strong>: Bir aray\u00fcz(Interface)\u00a0tasarlayarak\u00a0ortak olan t\u00fcm algoritmalar\u0131m\u0131z\u0131 burada toplar\u0131z.<br \/>\n<strong>ConcreteStrategy<\/strong>: Ilgili algoritmay\u0131 ger\u00e7ekleyen ger\u00e7ek s\u0131n\u0131f\u0131m\u0131z.<\/p>\n<p>Laf\u0131 fazla uzatmadan terminolojiyi bir kenara b\u0131rakarak hemen bir real-world \u00f6rne\u011fi yapal\u0131m:<\/p>\n<p>\u00d6rne\u011fimizde bir e-ticaret sitesindeki \u00f6deme k\u00fct\u00fcphanesini ele alal\u0131m. Birden fazla y\u00f6ntemle ve banka ile \u00e7al\u0131\u015f\u0131yor olabiliriz bu sistemde. \u0130ster banka transferi ile ister mail order y\u00f6ntemi ile veya sanal pos y\u00f6ntemi ile \u00f6demeyi \u00e7ekiyor olabiliriz.<\/p>\n<p>\u00d6ncelikle yukar\u0131da bahsetti\u011fimiz gibi ortak olan algoritmam\u0131z \u00f6rne\u011fimiz gere\u011fi ile <strong>MakePayment <\/strong>metotu olsun ve ilgili aray\u00fcz\u00fcm\u00fcz\u00fc tasarlamaya ge\u00e7elim.<\/p>\n<pre class=\"lang:c# decode:true \">    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ Strategy - T\u00fcm \u00f6deme strategy'lerimiz bu interface'den t\u00fcreyecek.\r\n    \/\/\/ &lt;\/summary&gt;\r\n    interface IPayment\r\n    {\r\n        void MakePayment();\r\n    }<\/pre>\n<p>\u0130lgili aray\u00fcz\u00fc tasarlad\u0131\u011f\u0131m\u0131za ve <strong>MakePayment<\/strong> metotunu tan\u0131mlad\u0131\u011f\u0131m\u0131za g\u00f6re ger\u00e7ekleyecek olan ilgili <strong>ConcreteStrategy<\/strong>&#8216;lerimizi olu\u015fturmaya ba\u015flayal\u0131m.<\/p>\n<pre class=\"lang:c# decode:true \">    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ ConcreteStrategy - Mail order y\u00f6ntemi ile \u00f6deme strategy'miz.\r\n    \/\/\/ &lt;\/summary&gt;\r\n    class MailOrderStrategy : IPayment\r\n    {\r\n        public void MakePayment()\r\n        {\r\n            Console.WriteLine(\"Mail order y\u00f6ntemi ile \u00f6deme yap\u0131ld\u0131.\");\r\n        }\r\n    }<\/pre>\n<p><strong>Mail order<\/strong> \u00f6deme y\u00f6ntemini sistemimize uyarlad\u0131k ve ilgili <strong>MakePayment<\/strong> metotunu bir mesaj yazd\u0131rarak doldurduk. Sistem her zaman geli\u015fime a\u00e7\u0131k olmal\u0131 demi\u015ftik ya? Birde \u015firketler s\u00fcrekli yeni bir \u015feyler isterler malum :) M\u00fc\u015fterimiz bizden bu seferde <strong>banka transferi<\/strong> y\u00f6ntemi ile \u00f6deme tipinin de entegre edilmesini istedi.<\/p>\n<pre class=\"lang:c# decode:true \">    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ ConcreteStrategy - Havale y\u00f6ntemi ile \u00f6deme strategy'miz.\r\n    \/\/\/ &lt;\/summary&gt;\r\n    class BankTransferStrategy : IPayment\r\n    {\r\n        public void MakePayment()\r\n        {\r\n            Console.WriteLine(\"Havale y\u00f6ntemi ile \u00f6deme yap\u0131ld\u0131.\");\r\n        }\r\n    }<\/pre>\n<p>\u0130\u015fte bu kadar basit. <strong>IPayment<\/strong> aray\u00fcz\u00fcn\u00fc implemente ederek sistemimizi geni\u015fletmi\u015f olduk. Evet durmak yok! Bu seferde sanal pos y\u00f6ntemi ile \u00f6deme \u00e7ekilmesini istediler bizden, haz\u0131rl\u0131kl\u0131 oldu\u011fumuz i\u00e7in hemen yine i\u015fe koyuluyoruz. :)<\/p>\n<pre class=\"lang:c# decode:true \">    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ ConcreteStrategy - Kredi kart\u0131 ile \u00f6deme strategy'miz.\r\n    \/\/\/ &lt;\/summary&gt;\r\n    class CreditCardStrategy : IPayment\r\n    {\r\n        public void MakePayment()\r\n        {\r\n            Console.WriteLine(\"Kredi kart\u0131 y\u00f6ntemi ile \u00f6deme yap\u0131ld\u0131.\");\r\n        }\r\n    }<\/pre>\n<p>\u0130\u015fte bu da bu kadar basit. :) \u0130yi g\u00fczel ho\u015f, ger\u00e7ekleyen s\u0131n\u0131flar\u0131m\u0131z\u0131 olu\u015fturduk istekler do\u011frultusunda ama ben bunu nas\u0131l kullanaca\u011f\u0131m? Huh?<\/p>\n<p>Hemen <strong>Context<\/strong>&#8216;imizi yani \u00f6rne\u011fimiz gere\u011fi\u00a0<strong>PaymentOperation<\/strong> s\u0131n\u0131f\u0131n\u0131 haz\u0131rlayal\u0131m. Bir nevi\u00a0ilgili \u00f6deme i\u015flemini sarmalay\u0131p developerlara daha basic bir kullan\u0131m sunan <strong>wrapper<\/strong> s\u0131n\u0131f\u0131m\u0131z.<\/p>\n<pre class=\"lang:c# decode:true \">    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ Context'imiz. IPayment strategy'mizin i\u00e7eri\u011findeki metotlar\u0131 sarmalar.\r\n    \/\/\/ &lt;\/summary&gt;\r\n    class PaymentOperation\r\n    {\r\n        private IPayment _odeme;\r\n        public PaymentOperation(IPayment _odeme)\r\n        {\r\n            this._odeme = _odeme;\r\n        }\r\n\r\n        public void MakePayment()\r\n        {\r\n            this._odeme.MakePayment();\r\n        }\r\n    }<\/pre>\n<p>Sarmalay\u0131c\u0131 s\u0131n\u0131f\u0131da <strong><a href=\"https:\/\/gokhan-gokalp.com\/ioc-container-nedir\/\" target=\"_blank\">constructor injetion<\/a><\/strong> yaparak haz\u0131rlad\u0131\u011f\u0131m\u0131za\u00a0g\u00f6re hemen \u00f6rne\u011fimizin kullan\u0131m\u0131na bir g\u00f6z atal\u0131m:<\/p>\n<pre class=\"lang:c# decode:true \">        static void Main(string[] args)\r\n        {\r\n            PaymentOperation paymentOperation = null;\r\n\r\n            \/\/ Client gelecek olan de\u011fere g\u00f6re runtime'da istedi\u011fi gibi \u00f6deme tipini se\u00e7ebilir.\r\n            string paymentType = \"BankTransfer\";\r\n\r\n            \/\/ If-Else bloklar\u0131n\u0131 ise gerekti\u011finde bir ka\u00e7 sat\u0131r Reflection kodu ile a\u015fabiliriz.\r\n            \/\/ Fakat gerekmedik\u00e7e over architectur'ada ka\u00e7\u0131n\u0131lmamas\u0131 gerekmektedir.\r\n            \/\/ Att\u0131\u011f\u0131m\u0131z ta\u015f, \u00fcrk\u00fctt\u00fc\u011f\u00fcm\u00fcz kurba\u011faya de\u011fecek mi? Buna karar vererek. :)\r\n\r\n            if (paymentType == \"BankTransfer\")\r\n            {\r\n                paymentOperation = new PaymentOperation(new BankTransferStrategy());\r\n            }\r\n            else if (paymentType == \"CreditCard\")\r\n            {\r\n                paymentOperation = new PaymentOperation(new CreditCardStrategy());\r\n            }\r\n            else if (paymentType == \"MailOrder\")\r\n            {\r\n                paymentOperation = new PaymentOperation(new MailOrderStrategy());\r\n            }\r\n\r\n            paymentOperation.MakePayment();\r\n\r\n            Console.ReadLine();\r\n        }<\/pre>\n<p>Basit tutmaya \u00e7al\u0131\u015farak ve real-world \u00f6rne\u011fi vererek daha anla\u015f\u0131l\u0131r bi hale gelmesini\u00a0istedim. Bir sonraki makalemde g\u00f6r\u00fc\u015fmek dile\u011fiyle. :)<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tasar\u0131m desenleri makale serimize yine\u00a0Behavioral\u00a0tasar\u0131m kal\u0131plar\u0131\u00a0grubunda yer alan Strategy tasar\u0131m deseni ile devam edece\u011fiz. A\u00e7\u0131k\u00e7as\u0131 en sevdi\u011fim GOF(Gang of Four) desenlerinden birisidir de diyebilirim. :) Evet haydi bakal\u0131m neymi\u015f bu Strategy? \u0130sminden de anla\u015f\u0131laca\u011f\u0131 \u00fczere bir i\u015fi yapabilecek\u00a0birden fazla algoritmam\u0131z var ise orada hemen Strategy&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/gokhan-gokalp.com\/tr\/c-strategy-pattern-kullanimi\/\">Devam\u0131n\u0131 okuyun<span class=\"screen-reader-text\">C# Strategy Pattern Kullan\u0131m\u0131<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[47],"tags":[92,93,23,91,90],"class_list":["post-373","post","type-post","status-publish","format-standard","hentry","category-tasarim-kaliplari-design-patterns","tag-c-strategy-patterni","tag-constructor-injection","tag-strategy-pattern","tag-strategy-pattern-kullanimi","tag-strategy-tasarim-deseni","entry"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"tr","enabled_languages":["en","tr"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"tr":{"title":false,"content":false,"excerpt":false}}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>C# Strategy Pattern Kullan\u0131m\u0131 - G\u00f6khan G\u00f6kalp<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gokhan-gokalp.com\/c-strategy-pattern-kullanimi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C# Strategy Pattern Kullan\u0131m\u0131 - G\u00f6khan G\u00f6kalp\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gokhan-gokalp.com\/c-strategy-pattern-kullanimi\/\" \/>\n<meta property=\"og:site_name\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n<meta property=\"article:published_time\" content=\"2015-07-14T18:14:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-07-14T18:27:23+00:00\" \/>\n<meta name=\"author\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/c-strategy-pattern-kullanimi\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/c-strategy-pattern-kullanimi\\\/\"},\"author\":{\"name\":\"G\u00f6khan G\u00f6kalp\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"headline\":\"C# Strategy Pattern Kullan\u0131m\u0131\",\"datePublished\":\"2015-07-14T18:14:57+00:00\",\"dateModified\":\"2015-07-14T18:27:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/c-strategy-pattern-kullanimi\\\/\"},\"wordCount\":596,\"commentCount\":8,\"publisher\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"keywords\":[\"C# Strategy Patterni\",\"Constructor Injection\",\"Strategy Pattern\",\"Strategy Pattern Kullan\u0131m\u0131\",\"Strategy Tasar\u0131m Deseni\"],\"articleSection\":[\"Tasar\u0131m Kal\u0131plar\u0131 (Design Patterns)\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/gokhan-gokalp.com\\\/c-strategy-pattern-kullanimi\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/c-strategy-pattern-kullanimi\\\/\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/c-strategy-pattern-kullanimi\\\/\",\"name\":\"C# Strategy Pattern Kullan\u0131m\u0131 - G\u00f6khan G\u00f6kalp\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#website\"},\"datePublished\":\"2015-07-14T18:14:57+00:00\",\"dateModified\":\"2015-07-14T18:27:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/c-strategy-pattern-kullanimi\\\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gokhan-gokalp.com\\\/c-strategy-pattern-kullanimi\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/c-strategy-pattern-kullanimi\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gokhan-gokalp.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# Strategy Pattern Kullan\u0131m\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#website\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/\",\"name\":\"G\u00f6khan G\u00f6kalp\",\"description\":\"C# &amp; Python lover\",\"publisher\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gokhan-gokalp.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\",\"name\":\"G\u00f6khan G\u00f6kalp\",\"pronouns\":\"he\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\",\"contentUrl\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\",\"caption\":\"G\u00f6khan G\u00f6kalp\"},\"logo\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\"},\"sameAs\":[\"https:\\\/\\\/gokhan-gokalp.com\"],\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/tr\\\/author\\\/gok-gokalp\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C# Strategy Pattern Kullan\u0131m\u0131 - G\u00f6khan G\u00f6kalp","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:\/\/gokhan-gokalp.com\/c-strategy-pattern-kullanimi\/","og_locale":"tr_TR","og_type":"article","og_title":"C# Strategy Pattern Kullan\u0131m\u0131 - G\u00f6khan G\u00f6kalp","og_url":"https:\/\/gokhan-gokalp.com\/c-strategy-pattern-kullanimi\/","og_site_name":"G\u00f6khan G\u00f6kalp","article_published_time":"2015-07-14T18:14:57+00:00","article_modified_time":"2015-07-14T18:27:23+00:00","author":"G\u00f6khan G\u00f6kalp","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"G\u00f6khan G\u00f6kalp","Tahmini okuma s\u00fcresi":"4 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gokhan-gokalp.com\/c-strategy-pattern-kullanimi\/#article","isPartOf":{"@id":"https:\/\/gokhan-gokalp.com\/c-strategy-pattern-kullanimi\/"},"author":{"name":"G\u00f6khan G\u00f6kalp","@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"headline":"C# Strategy Pattern Kullan\u0131m\u0131","datePublished":"2015-07-14T18:14:57+00:00","dateModified":"2015-07-14T18:27:23+00:00","mainEntityOfPage":{"@id":"https:\/\/gokhan-gokalp.com\/c-strategy-pattern-kullanimi\/"},"wordCount":596,"commentCount":8,"publisher":{"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"keywords":["C# Strategy Patterni","Constructor Injection","Strategy Pattern","Strategy Pattern Kullan\u0131m\u0131","Strategy Tasar\u0131m Deseni"],"articleSection":["Tasar\u0131m Kal\u0131plar\u0131 (Design Patterns)"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gokhan-gokalp.com\/c-strategy-pattern-kullanimi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gokhan-gokalp.com\/c-strategy-pattern-kullanimi\/","url":"https:\/\/gokhan-gokalp.com\/c-strategy-pattern-kullanimi\/","name":"C# Strategy Pattern Kullan\u0131m\u0131 - G\u00f6khan G\u00f6kalp","isPartOf":{"@id":"https:\/\/gokhan-gokalp.com\/#website"},"datePublished":"2015-07-14T18:14:57+00:00","dateModified":"2015-07-14T18:27:23+00:00","breadcrumb":{"@id":"https:\/\/gokhan-gokalp.com\/c-strategy-pattern-kullanimi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gokhan-gokalp.com\/c-strategy-pattern-kullanimi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/gokhan-gokalp.com\/c-strategy-pattern-kullanimi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gokhan-gokalp.com\/"},{"@type":"ListItem","position":2,"name":"C# Strategy Pattern Kullan\u0131m\u0131"}]},{"@type":"WebSite","@id":"https:\/\/gokhan-gokalp.com\/#website","url":"https:\/\/gokhan-gokalp.com\/","name":"G\u00f6khan G\u00f6kalp","description":"C# &amp; Python lover","publisher":{"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gokhan-gokalp.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe","name":"G\u00f6khan G\u00f6kalp","pronouns":"he","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659","url":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659","contentUrl":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659","caption":"G\u00f6khan G\u00f6kalp"},"logo":{"@id":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659"},"sameAs":["https:\/\/gokhan-gokalp.com"],"url":"https:\/\/gokhan-gokalp.com\/tr\/author\/gok-gokalp\/"}]}},"_links":{"self":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/373","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/comments?post=373"}],"version-history":[{"count":6,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/373\/revisions"}],"predecessor-version":[{"id":380,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/373\/revisions\/380"}],"wp:attachment":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/media?parent=373"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/categories?post=373"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/tags?post=373"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}