Powiedzmy, że mam Car
klasę:
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 Car
klasy, więc tworzymy CarCollection
klasę, 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ć ClassCollection
inną Class
?
public class CarCollection
nie 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.
CarColection
z TotalTradeValue
nieruchomości na niego. DDD nie jest jedynym sposobem projektowania systemów, tylko wskazując go jako opcję.
CarCollection
raczej 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).