Có một giả định khá an toàn rằng lớp sau là đại diện lẻ của "hạ cấp" (vì thiếu từ tốt hơn) trường lớp riêng tư?Bộ sưu tập và danh sách
public class AggregatedClass : ICollection<SingleClass>
{
List<SingleClass> _singleClassList;
// ...rest of code
}
Gần đây tôi đã nhìn thấy ví dụ "đang hoạt động" về điều này và nó đã ném tôi một chút vòng lặp. Điểm trên là gì? Nếu List<T>
thực hiện ICollection<T>
, thì không phải lớp trên là sự đảo ngược? Bạn đang có một trường lớp riêng là lớp loại là một phần mở rộng của việc thực hiện lớp của cha mẹ nó (ICollection<T>
).
Có chính xác khi nói ví dụ trên không thực sự là một thiết kế tuyệt vời?
Vâng, bạn vẫn cần cấu trúc dữ liệu để giữ dữ liệu, đúng không? Có thể là danh sách hoặc mảng, ICollection hoặc bất kỳ thứ gì. Danh sách xảy ra để làm cho nó khá dễ dàng để thực hiện ICollection . –
hawkke
@hawkke "Danh sách xảy ra để làm cho nó khá dễ dàng để thực hiện IColleciton ."Bạn có nói rằng chỉ vì' List 'thực sự thực hiện ICollection ? –
Nó có dư thừa không? Chắc chắn, một chút. Bạn có thể làm cho một đối số rằng _singleClassList có thể là một thuộc tính công khai. – hawkke