1 Ocak 2009 Perşembe

Strategy Design Pattern

Anlatacağımız strategy design pattern davranışsal olarak gruplanan patternlardandır.Policy(politika) pattern olarak ta belirtilir.Kullanım şekli ise, mevcut strategyleri sınıflarla encapsulate etmek ve böylece runtime da değişebilen strategyleri uygulamak.Örneğin,uygulamamızda kullanıcıdan birçok veri alıyoruz.Bu verileri belirli algoritmalar ile sıralıyoruz.Tabi bunun için birçok algoritma mevcut.(Quick Sort,Bubble Sort ...).Hangi durumda hangi algoritmayı kullanacağımıza runtime da karar vereceğiz.Bunun için strategy patternı kullanmak doğru olacaktır.Genel bir UML diagramı ise şu şekilde olacaktır.

C# örneği olarak:

abstract class BaseStrategy

{

public abstract void execute();

}


class
Strategy1:BaseStrategy
{

public override void execute()

{

Console.WriteLine("Strategy1 executing");

}

}


class Strategy2:BaseStrategy

{

public override void execute()

{

Console.WriteLine("Executing Strategy2");

}

}


static void Main(string[] args)

{

string str = Console.ReadLine();

BaseStrategy strategy;

if (str == "1")

strategy = new Strategy1();

else

strategy = new Strategy2();

strategy.execute();

Console.ReadLine();

}


Belki çok anlamlı bir örnek olmayabilir.Fakat bu pattern ile ilk defa karşılaşanlar için faydalı bir örnek olacaktır.UML diagramına bakarsanız factory methodun creator tarafındaki hiyerarşi burada da mevcuttur.Yani çeşitli yaratma stratejileri mevcuttur.İnce bir ayrıntı:))) ...Bu yazımız da bu kadar .

Kolay Gelsin.

0 yorum: