<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>factory method design pattern nedir? &#8211; Gökhan Doğru</title>
	<atom:link href="https://www.gokhandogru.net/tag/factory-method-design-pattern-nedir/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.gokhandogru.net</link>
	<description>Sadece yazılımcıyım, format atmayı bilmiyorum.</description>
	<lastBuildDate>Sat, 14 Jan 2023 23:06:56 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.3</generator>

<image>
	<url>https://www.gokhandogru.net/wp-content/uploads/2019/12/cropped-Başlıksız-1-1-32x32.png</url>
	<title>factory method design pattern nedir? &#8211; Gökhan Doğru</title>
	<link>https://www.gokhandogru.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Factory Method Design Pattern Nedir?</title>
		<link>https://www.gokhandogru.net/factory-method-design-pattern-nedir/</link>
					<comments>https://www.gokhandogru.net/factory-method-design-pattern-nedir/#respond</comments>
		
		<dc:creator><![CDATA[Gökhan Doğru]]></dc:creator>
		<pubDate>Sat, 14 Jan 2023 22:57:27 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Design Pattern]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[c# factory method design pattern]]></category>
		<category><![CDATA[design pattern factory]]></category>
		<category><![CDATA[factory design pattern nedir]]></category>
		<category><![CDATA[factory method design pattern]]></category>
		<category><![CDATA[factory method design pattern nedir?]]></category>
		<guid isPermaLink="false">https://www.gokhandogru.net/?p=898</guid>

					<description><![CDATA[Factory Method Design Pattern, bir sınıfın nesnelerinin oluşturulmasını, alt sınıflar tarafından gerçekleştirilen bir yöntemle yapmasını sağlar. Bu yöntem, oluşturulacak nesnenin türünü belirlemek için kullanılır. Bu desen, nesnenin oluşturulması sırasında kullanılan kodun kalabalık olmamasını ve nesnenin oluşturulması işlemlerinin değiştirilebilir olmasını sağlar. Örneğin, bir araba firmasının farklı farklı tipte araç oluşturmasını düşünebiliriz.]]></description>
										<content:encoded><![CDATA[<p>Factory Method Design Pattern, bir sınıfın nesnelerinin oluşturulmasını, alt sınıflar tarafından gerçekleştirilen bir yöntemle yapmasını sağlar. Bu yöntem, oluşturulacak nesnenin türünü belirlemek için kullanılır. Bu desen, nesnenin oluşturulması sırasında kullanılan kodun kalabalık olmamasını ve nesnenin oluşturulması işlemlerinin değiştirilebilir olmasını sağlar. Örneğin, bir araba firmasının farklı farklı tipte araç oluşturmasını düşünebiliriz. (<img class="alignnone" src="https://seeklogo.com/images/C/chatgpt-logo-02AFA704B5-seeklogo.com.png" alt="" width="16" height="16" />)</p>
<p>Her arabada olabilecek/arabanın ortak özelliklerini belirttiğim <strong>Car</strong> adında bir <strong>abstract class</strong> oluşturuyorum.<br />
<script src="https://gist.github.com/dgokhan/775a1e779fa710e6444b54f05720f250.js"></script></p>
<p>Araba tiplerini, kalıtım sayesinde<strong> Car </strong>abstract sınıfından alarak <strong>Sedan</strong>, <strong>SUV</strong> ve <strong>Hatchback</strong> araç tiplerini oluşturuyorum.<br />
<script src="https://gist.github.com/dgokhan/c3b60ec0fb6e27dbc17d76884b6c970c.js"></script><br />
<script src="https://gist.github.com/dgokhan/e9ff5387cd534950b1c8e2278bd682e3.js"></script><br />
<script src="https://gist.github.com/dgokhan/5176d62a4aa2dea1c990ff5446c36ff2.js"></script></p>
<p>Programda oluşabilecek type hatalarını engellemek ve belirli tiplerin dışına çıkılmaması adına <strong>CarTypes</strong> adında bir <strong>enum</strong> oluşturuyorum.<br />
<script src="https://gist.github.com/dgokhan/83d359b7d38bf8357222683d7f0b063e.js"></script></p>
<p>Şimdi sıra geldi Factory&#8217;imizi oluşturmaya..<br />
<strong>CarFactory</strong> adında bir public class oluşturuyorum ve içine <strong>Create</strong> adında geriye <strong>Car</strong> modelinde değer döndüren bir method hazırlıyorum.<br />
<script src="https://gist.github.com/dgokhan/f8ee3573bfec3d23e911ab76d0c163b1.js"></script></p>
<p>* Koddan anlaşılacağı üzere, ben <strong>CarFactory</strong>&#8216;de <strong>Create</strong> methoduna Sedan tipini gönderdiğimde bana <strong>new Sedan();</strong> bloguna girip oluşturduğum nesnin artık <strong>Sedan</strong> yapısında;<br />
4 teker olacağını, sunroof ve elektrikli olmayacağının bilgisini vermiş oluyor.</p>
<p><script src="https://gist.github.com/dgokhan/e4cb5dd4e8dc9dd4b652babaee106610.js"></script></p>
<p>Şimdi bakalım Fabrikamız gerçekten bir Sedan arabamı üretmiş? 🙂<br />
<img loading="lazy" class="size-medium wp-image-899 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2023/01/Screenshot_3-300x140.png" alt="factory method design pattern" width="300" height="140" srcset="https://www.gokhandogru.net/wp-content/uploads/2023/01/Screenshot_3-300x140.png 300w, https://www.gokhandogru.net/wp-content/uploads/2023/01/Screenshot_3.png 337w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>Eğer Factory.Create&#8217;içine Hatchback gönderirseniz; Sunroof&#8217;ı olmayan, elektrikli ve 4 tekerlekli bir araba üretecektiniz 🙂</p>
<p>Umarım konuyu anlaşılabilir bir şekilde sizlere anlatabilmişimdir.</p>
<p>Örnek proje halini aşağıda ki Github logosuna tıklayarak gidebilirsiniz;<br />
<a href="https://github.com/dgokhan/DotNET-Design-Patterns" target="_blank" rel="noopener"><img loading="lazy" class="alignnone wp-image-623 size-medium hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github-300x113.png" alt="" width="300" height="113" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github-300x113.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github.png 358w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gokhandogru.net/factory-method-design-pattern-nedir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
