Vamos dizer que eu tenho uma Caraula:
public class Car
{
public string Engine { get; set; }
public string Seat { get; set; }
public string Tires { get; set; }
}
Digamos que estamos criando um sistema sobre um estacionamento, vou usar grande parte da Carclasse, então fazemos uma CarCollectionclasse, pode haver alguns métodos adicionais, como FindCarByModel:
public class CarCollection
{
public List<Car> Cars { get; set; }
public Car FindCarByModel(string model)
{
// code here
return new Car();
}
}
Se estou fazendo uma aula ParkingLot, qual é a melhor prática?
Opção 1:
public class ParkingLot
{
public List<Car> Cars { get; set; }
//some other properties
}
Opção 2:
public class ParkingLot
{
public CarCollection Cars { get; set; }
//some other properties
}
É uma boa prática criar um ClassCollectionde outro Class?
public class CarCollectionnão implementa IList ou ICollection, etc ... assim você não pode passá-lo para algo que esteja bem com uma lista. Alega como parte de seu nome que é uma coleção, mas não implementa nenhum desses métodos.
CarColectioncom uma TotalTradeValuepropriedade. O DDD não é a única maneira de projetar sistemas, apenas apontando como uma opção.
CarCollectionpouco ao invés de umList<Car>redor? Especialmente porque o CarCollection não estende a classe Backing List nem implementa a interface Collection (tenho certeza que o C # tem coisas semelhantes).