Program to an interface, not to an implementation

Program to an interface, not to an implementation, esnek (flexible), genişletilebilir (extensible) ve idare edilebilir (maintainable) yazılım yazmayı kolayylaştıran en önemli ilke olarak göze çarpıyor.

Duck örneği, bir oyun tasarlaması olarak ördek yazıdığımızı varsayalım. ve 9 davranışı farklı ördek olsun, genel davranışları ötmesi ve ucması. sözkonusu ördek için bir superclass yazıp her bir cesit içinde davranışları override etme işin için cıkılmaz ve zor bir yapıya götürüyor. ancak her bir davranışı(algoritmasını) bir interface ile classlara implement ederek tasarlarsak dizayn çok kullanışlı ve anlamlı olmaya başlıyor. Aşağıdaki örnek gibi


RedDuck x = new RedDuck();

x.otusu();

x.ucusu();

Console.ReadLine();

 

 

public interface FlyAble

{

void fly();

}

public interface QuackAble

{

void Quack();

}

public class FlyWithRocket : FlyAble

{

#region FlyAble Members

public void fly()

{

Console.WriteLine("Roket Hızı ile ucuyorum");

}

#endregion

}

public class NoFly : FlyAble

{

#region FlyAble Members

public void fly()

{

Console.WriteLine("Ucamıyorum");

}

#endregion

}

public class FlyForNormal : FlyAble

{

#region FlyAble Members

public void fly()

{

Console.WriteLine("Normal Ucuyor");

}

#endregion

}

public class quackOver : QuackAble

{

#region QuackAble Members

public void Quack()

{

Console.WriteLine("Vack Vırak");

}

#endregion

}

public class quackMute : QuackAble

{

#region QuackAble Members

public void Quack()

{

Console.WriteLine("Ötemiyorum pıt pıt ");

}

#endregion

}

public class RedDuck

{

FlyAble ucması;

QuackAble otmesi;

public void ucusu()

{

ucması = new FlyWithRocket();

ucması.fly();

}

public void otusu()

{

otmesi = new quackOver();

otmesi.Quack();

}

}

18 Mart 2007 Pazar 10:28 gönderen MuratHAKSAL
Filed Under: , ,

Yorumlar

# re: Program to an interface, not to an implementation @ 19 Mart 2007 Pazartesi 00:47

"Program to an interface, not to an implementation" OOP'un anlamı bu olsa gerek, mükemmel bir örnek

suat