alıcı ve ayarlayıcıları içerebilir muNeden Yöntemleri Uyum (Lcom) eksikliği burada gösterildiği gibi ben <p><a href="http://www.ndepend.com/Metrics.aspx" rel="noreferrer">http://www.ndepend.com/Metrics.aspx</a></p> <p></p> yüzden birkaç şey diyorsun, metrik Lcom bakıyorum
1) A class is utterly cohesive if all its methods use all its instance fields 2) Both static and instance methods are counted, it includes also constructors, properties getters/setters, events add/remove methods
Ben bunun gibi bir sınıfa bakarsanız,
public class Assessment
{
public int StartMetres { get; set; }
public int EndMetres { get; set; }
public decimal? NumericResponse { get; set; }
public string FreeResponse { get; set; }
public string Responsetype { get; set; }
public string ItemResponseDescription { get; set; }
public string StartText { get; set; }
public decimal? SummaryWeight { get; set; }
}
Her bir alıcı ve ayarlayıcı 'diğer tüm örnek alanlarına' erişmediğinden, 0,94 hatalı bir puan alır.
Böyle hesaplanır,
accessAverage - methodCount/1 - methodCount
(2 - 17)/(1 - 17) = 0.94 (rounded)
Bu metriği Anlamıyorum, neden alıcıları ve ayarlayıcıları içermelidir? Bir alıcı ve ayarlayıcı her zaman yalnızca tek bir örnek alanına erişir.
LCOM metriğinin otomatik özelliklerin alanlar ile aynı olduğunu düşünmesi gerektiğini savunuyorum. – Gabe
LCOM benzeri metriklerle ilgili olan şey şu ki, 'Değerlendirme' olayı, bu gerçekten bir sınıf değil. Bu sadece aptal bir POCO ('spesifik olmayan, anlamsız bir anlama sahip dumb), bir yapı (ya da Pascal-benzeri bir paritede kayıt.) Davranışları yoktur (davranışlar arasında tipik olarak devlet ilişkileri tarafından temsil edilen davranışlar vardır.) Ergo, doğru değil ** sınıf **. Bir POV dilinden olabilir, ancak bir POV alanından değil (gerçekten neye önem verdiğinizden). POJOS veya struct'larda LCOM metriklerini toplamaktan kaçınıyorum ya da onlar için sonuçları görmezden geliyorum. LCOM haklı - bu bir sınıf değil. Bu bilgiyi buna göre kullanın. –
Belki de alıcılar ve ayarlayıcılar sınıfın bütünlüğünü düşürdüğü için ve nesne yönelimli programlamada kaçınılmalıdır: http://www.yegor256.com/2014/09/16/getters-and-setters-are-evil. html – yegor256