Tôi có cấu trúc cây thể loại/tệp. Cả hai loại và tệp đều có thể có cha mẹ, vì vậy tôi bắt nguồn từ một lớp cơ sở chung có thuộc tính Gốc. Vì tất cả các bậc cha mẹ rõ ràng sẽ luôn là các loại (các tệp không thể là cha mẹ), có vẻ như có ý nghĩa để làm cho thuộc tính Gốc của nút là loại CategoryNode.Có phải biểu mẫu không đúng để chỉ một loại có nguồn gốc trong một loại cơ sở không?
Biểu mẫu xấu cho lớp cơ sở có đề cập đến lớp dẫn xuất không? Nếu vậy, tại sao? Cách tốt hơn để cấu trúc cái này là gì?
class Node {
public CategoryNode Parent {get; set;}
}
class File : Node {
...
}
class CategoryNode : Node {
...
}
AFAIU, cả hai đều mở rộng cùng một lớp cơ sở để chia sẻ các thuộc tính, vậy tại sao không sử dụng trên lớp đơn lẻ có tham chiếu đệ quy cho chính nó? với các thuộc tính bổ sung để phân biệt chúng. –
yes thats bad. Gây phụ thuộc vòng tròn. Cơ sở không nên biết gì về Derived. – Tilak
@Furqan, nút Tệp không cần thêm nội dung mà CategoryNode có, chẳng hạn như trẻ em, vì vậy tôi không nghĩ rằng nó sẽ lấy được từ CategoryNode. – Kelsie