Bu tasarım deseni nesne oluşturma işini sistemden ayırır ve aldığı parametreye göre nesneleri oluşturarak kullanıcıya geri döner.
Bir örnek verecek olursak düşünün ki gezmeye giderken farklı yöntemleriniz olsun. Ben şimdilik iki tane kullanacağım : Araba ve Bisiklet. Bu iki sınıf "Yöntem" arayüzümüzden türemişler. Bir adet de YöntemFabrika'mız var.
Yöntem.cs
Araba.cs
Bisiklet.cs
YöntemFabrikası.cs
ve kullanacağımız yer
Bir örnek verecek olursak düşünün ki gezmeye giderken farklı yöntemleriniz olsun. Ben şimdilik iki tane kullanacağım : Araba ve Bisiklet. Bu iki sınıf "Yöntem" arayüzümüzden türemişler. Bir adet de YöntemFabrika'mız var.
Yöntem.cs
interface Yöntem
{
void Gez();
}
{
void Gez();
}
Araba.cs
class Araba : Yöntem
{
}
{
public void Gez()
{
MessageBox.Show("arabayla geziyorum");
}
{
MessageBox.Show("arabayla geziyorum");
}
}
Bisiklet.cs
class Bisiklet : Yöntem
{
}
{
public void Gez()
{
MessageBox.Show("bisikletle geziyorum");
}
{
MessageBox.Show("bisikletle geziyorum");
}
}
YöntemFabrikası.cs
class YöntemFabrikası
{
}
{
public Yöntem yöntemYarat(string opt)
{
}
{
if (opt == "arabayla")
return new Araba();
else if(opt=="bisikletle")
return new Bisiklet();
return new Araba();//if'lere girmezse
return new Araba();
else if(opt=="bisikletle")
return new Bisiklet();
return new Araba();//if'lere girmezse
}
}
ve kullanacağımız yer
string parametre = //istenilen yerden dinamik olarak çekilebilir
Yöntem y = new YöntemFabrikası().yöntemYarat(parametre );
y.Gez();
Yöntem y = new YöntemFabrikası().yöntemYarat(parametre );
y.Gez();
Yorumlar