Hãy nói rằng tôi có một Car
lớ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 Car
lớp, vì vậy chúng tôi tạo một CarCollection
lớ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 ClassCollection
khác Class
?
public class CarCollection
khô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ố đó.
CarColection
một TotalTradeValue
tà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.
CarCollection
hơ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ự).