Я смотрю на показатель LCOM, как показано здесь,
http://www.ndepend.com/Metrics.aspx
Итак, мы говорим несколько вещей,
1 ) Класс полностью связан, если все его методы используют все его поля экземпляра 2) Подсчитываются как статические методы, так и методы экземпляра, включая также конструкторы, методы получения / установки свойств, методы добавления / удаления событий.
Если я посмотрю на такой класс,
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; }
}
Он получит плохую оценку 0,94, потому что каждый метод получения и установки не имеет доступа «ко всем другим полям экземпляра».
Он рассчитывается следующим образом:
accessAverage - methodCount / 1 - methodCount
(2 - 17) / (1 - 17) = 0.94 (rounded)
Я не понимаю эту метрику, почему она должна включать геттеры и сеттеры? Геттер и сеттер всегда будут обращаться только к одному единственному полю экземпляра.