Ş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
İ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
Strateji Tasarım deseni ve Devlet dese...
Fabrika ve Strateji desen arasındaki f...
Köprü desen ve strateji desen arasında...
Strateji desen ve Bağımlılık Enjeksiyo...
DAO ve Depo desen arasındaki fark nedi...