SORU
21 Mart 2009, CUMARTESİ


Şablon yöntemi ve strateji desen arasındaki fark nedir?

Birisi şablon yöntemi ile desen arasındaki fark nedir açıklayın bana desen strateji misiniz?

Bildiğim kadarıyla söyleyebilirim, onlar � aynı tek farkı bu şablon metot kalıbı olan bir soyut sınıf gibi temel sınıf ise strateji sınıfı kullanan bir arayüz uygulanmış olduğu her somut strateji sınıf.

Ancak, bildiğim kadarıylaistemciaynı şekilde tüketilir ilgilidir - bu doğru mu?

CEVAP
21 Mart 2009, CUMARTESİ


İkisi arasındaki temel fark beton algoritması seçildiğinde.

İleŞablon metot kalıbıbu böyle olurderleme zamanıtarafındansınıflaraşablonu. Her bir alt şablonu soyut yöntemler uygulayarak farklı somut bir algoritma sağlar. Bir istemci şablonu dış arabirim yöntemleri istediğinde şablon algoritma çağırmak için gerekli soyut yöntemleri (iç arayüz) çağırır.

class ConcreteAlgorithm : AbstractTemplate
{
    void DoAlgorithm(int datum) {...}
}

class AbstractTemplate
{
    void run(int datum) { DoAlgorithm(datum); }

    virtual void DoAlgorithm() = 0; // abstract
}

Buna karşılık,Strateji desenbir algoritma seçilmesine olanak verirçalışma zamanıtarafındançevreleme. Beton algoritmaları belirleyici bir yöntem için kendi kurucusuna bir parametre olarak strateji geçirilir ayrı sınıfları veya işlevleri yürütür. Bu parametre için seçilen dinamik olarak programın devlet veya girişlerine bağlı olarak değişebilir.

class ConcreteAlgorithm : IAlgorithm
{
    void DoAlgorithm(int datum) {...}
}

class Strategy
{
    Strategy(IAlgorithm algo) {...}

    void run(int datum) { this->algo.DoAlgorithm(datum); }
}

Özet olarak:

  • Yöntem desen şablon:derleme zamanıalgoritma seçimisınıflara
  • Strateji desen:çalışma zamanı algoritmasıseçim tarafındançevreleme

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ethr95awd

    ethr95awd

    8 Kasım 2006
  • Jay Will

    Jay Will

    19 NİSAN 2006
  • metagamers

    metagamers

    13 Mayıs 2006