Tôi đang tìm kiếm tại LCOM số liệu như trình bày ở đây,Tại sao Thiếu gắn kết các phương pháp (LCOM) Bao gồm Getters and Setters
http://www.ndepend.com/Metrics.aspx
Vì vậy, chúng ta đang nói đến một vài điều,
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
Nếu tôi nhìn vào một lớp học như thế này,
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; }
}
Điểm số của nó là 0,94 bởi vì mỗi getter và setter không truy cập 'tất cả các trường hợp khác'.
Nó được tính toán như thế này,
accessAverage - methodCount/1 - methodCount
(2 - 17)/(1 - 17) = 0.94 (rounded)
Tôi không hiểu số liệu này, tại sao nó nên bao gồm getter và setter? Một getter và setter sẽ luôn luôn chỉ truy cập vào một trường duy nhất.
Tôi cho rằng chỉ số LCOM nên xem xét các thuộc tính tự động giống với các trường. – Gabe
Điều về số liệu giống như LCOM là, điều 'Đánh giá', đó không thực sự là một lớp. Nó chỉ là một POCO câm ('câm 'có một ý nghĩa cụ thể, không xúc phạm), một cấu trúc (hoặc ghi lại trong cách nói giống như Pascal.) Nó không có hành vi (hành vi thường được biểu diễn bởi các mối quan hệ nhà nước giữa các phương thức.) Ergo, nó là không phải là một lớp ** thực **. Nó có thể là từ một ngôn ngữ POV, nhưng không phải từ một POV tên miền (đó là những gì bạn thực sự quan tâm.) Tôi hoặc tránh thu thập số liệu LCOM trong POJOS hoặc cấu trúc, hoặc bỏ qua các kết quả cho họ. LCOM là đúng - nó không phải là một lớp học. Chỉ cần sử dụng thông tin đó cho phù hợp. –
Có thể vì getters và setters thực sự làm giảm sự gắn kết của lớp và phải tránh trong lập trình hướng đối tượng: http://www.yegor256.com/2014/09/16/getters-and-setters-are-evil. html – yegor256