Powiedzmy, że mam Carklasę:
public class Car
{
public string Engine { get; set; }
public string Seat { get; set; }
public string Tires { get; set; }
}
Powiedzmy, że tworzymy system o parkingu, zamierzam wykorzystać dużo Carklasy, więc tworzymy CarCollectionklasę, może mieć kilka dodatkowych metod, takich jak FindCarByModel:
public class CarCollection
{
public List<Car> Cars { get; set; }
public Car FindCarByModel(string model)
{
// code here
return new Car();
}
}
Jeśli robię zajęcia ParkingLot, jaka jest najlepsza praktyka?
Opcja 1:
public class ParkingLot
{
public List<Car> Cars { get; set; }
//some other properties
}
Opcja 2:
public class ParkingLot
{
public CarCollection Cars { get; set; }
//some other properties
}
Czy to dobra praktyka, aby stworzyć ClassCollectioninną Class?
public class CarCollectionnie implementuje IList ani ICollection itp., Dlatego nie można przekazać go do czegoś, co jest w porządku z listą. W ramach nazwy twierdzi, że jest kolekcją, ale nie implementuje żadnej z tych metod.
CarColectionz TotalTradeValuenieruchomości na niego. DDD nie jest jedynym sposobem projektowania systemów, tylko wskazując go jako opcję.
CarCollectionraczej niżList<Car>dookoła? Zwłaszcza, że CarCollection nie rozszerza zaplecza klasy List, ani nawet nie implementuje interfejsu Collection (jestem pewien, że C # ma podobne rzeczy).