Why Does Lack of Cohesion Of Methods (LCOM) Include Getters and Setters

Я смотрю на показатель 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)

Я не понимаю эту метрику, почему она должна включать геттеры и сеттеры? Геттер и сеттер всегда будут обращаться только к одному единственному полю экземпляра.

20
задан whytheq 25 April 2016 в 22:48
поделиться