Hãy nói rằng tôi có một Carlớp học:
public class Car
{
public string Engine { get; set; }
public string Seat { get; set; }
public string Tires { get; set; }
}
Hãy nói rằng chúng tôi đang tạo ra một hệ thống về một bãi đậu xe, tôi sẽ sử dụng rất nhiều Carlớp, vì vậy chúng tôi tạo một CarCollectionlớp, nó có thể có một vài phương thức quảng cáo như FindCarByModel:
public class CarCollection
{
public List<Car> Cars { get; set; }
public Car FindCarByModel(string model)
{
// code here
return new Car();
}
}
Nếu tôi đang tham gia một lớp học ParkingLot, thực hành tốt nhất là gì?
Lựa chọn 1:
public class ParkingLot
{
public List<Car> Cars { get; set; }
//some other properties
}
Lựa chọn 2:
public class ParkingLot
{
public CarCollection Cars { get; set; }
//some other properties
}
Nó thậm chí là một thực hành tốt để tạo ra một cái ClassCollectionkhác Class?
public class CarCollectionkhông triển khai IList hoặc ICollection, v.v ... do đó bạn không thể chuyển nó sang một thứ phù hợp với danh sách. Nó tuyên bố như là một phần của tên của nó rằng nó là một bộ sưu tập, nhưng không thực hiện bất kỳ phương pháp nào trong số đó.
CarColectionmột TotalTradeValuetài sản trên đó. DDD không phải là cách duy nhất để thiết kế hệ thống, chỉ cần chỉ ra nó là một tùy chọn.
CarCollectionhơn làList<Car>xung quanh? Đặc biệt là CarCollection không mở rộng lớp Danh sách sao lưu hoặc thậm chí triển khai giao diện Bộ sưu tập (Tôi chắc chắn rằng C # có những thứ tương tự).