6 EKİM 2011, PERŞEMBE
Bu kötü uygulama adı anti-desen / nedir?
Bu kötü bir uygulama olduğunu neden takımıma anlatmaya çalışıyorum, ve anti-desen başvurusu için benim açıklamam yardımcı arıyorum. Bu çok büyük bir kurumsal bir uygulama olduğunu, burada uygulanan ne olduğunu göstermek için basit bir örnek:
public void ControlStuff()
{
var listOfThings = LoadThings();
var listOfThingsThatSupportX = new string[] {"ThingA","ThingB", "ThingC"};
foreach (var thing in listOfThings)
{
if(listOfThingsThatSupportX.Contains(thing.Name))
{
DoSomething();
}
}
}
Biz 'Şeyler Şeyi alt sınıfı söz konusu işlevi uygulamak gerekir, çünkü. eğer X destekliyorsa bize temel sınıf için bir özellik eklemek öneriyorum Şöyle bir şey:
public void ControlStuff()
{
var listOfThings = LoadThings();
foreach (var thing in listOfThings)
{
if (thing.SupportsX)
{
DoSomething();
}
}
}
class ThingBase
{
public virtual bool SupportsX { get { return false; } }
}
class ThingA : ThingBase
{
public override bool SupportsX { get { return true; } }
}
class ThingB : ThingBase
{
}
İlk yaklaşım kötü bir uygulama olduğunu neden bu apaçık ortada, ama bu adı ne? Ayrıca, bir desen söylüyorum bir daha bu sorun için daha uygun olduğunu?
CEVAP
6 EKİM 2011, PERŞEMBE
Normalde daha iyi bir yaklaşım (IMHO) miras yerine arayüzleri kullanmak olacaktır
sonra nesne arabirimi uygulanan olup olmadığını kontrol meselesidir.
Bunu Paylaş:
Anti-desen nedir?...
Tek örnek bir uygulama oluşturmak için...
Python bir uygulama için en iyi proje ...
Tımar ve kısmi uygulama arasındaki far...
Neden belgedir.yazma " kabul;kötü ...