factory method
Creational Patterns ailesine ait bir tasarım desenidir.Solid prensiplerinden Open-Closed mantığı derki Sınıflarımız gelişime açık ama değişime kapalı olmalıdır.Factory method bunu destekler.Örnek :
Bütün Kodlar
namespace FactoryMethod
{
public interface IAraç
{
void BilgiYazdir();
}
public class Taksi : IAraç
{
public void BilgiYazdir()
{
Console.WriteLine(“Taksi Oluşturuldu”);
}
}
public class Otomobil : IAraç
{
public void BilgiYazdir()
{
Console.WriteLine(“Otomobil Oluşturuldu”);
}
}
public enum AracTip
{
Taksi = 1,
Otomobil = 2
}
public interface IAracFactory
{
IAraç AracUretici(AracTip type);
}
public class AracFactory : IAracFactory
{
public IAraç AracUretici(AracTip type)
{
IAraç arac = null;
switch (type)
{
case AracTip.Taksi: arac = new Taksi(); break;
case AracTip.Otomobil: arac = new Otomobil(); break;
}
return arac;
}
}
class FactoryMetodOrnek
{
static void Main()
{
var aracFactory = new AracFactory();
IAraç otomobil = aracFactory.AracUretici(AracTip.Otomobil);
otomobil.BilgiYazdir();
IAraç taksi = aracFactory.AracUretici(AracTip.Taksi);
taksi.BilgiYazdir();
Console.ReadKey();
}
}
}