Скажемо, у мене Carклас:
public class Car
{
public string Engine { get; set; }
public string Seat { get; set; }
public string Tires { get; set; }
}
Скажімо, ми створюємо систему щодо паркування, я буду використовувати багато Carкласу, тому ми робимо CarCollectionклас, він може мати кілька додаткових методів, таких як FindCarByModel:
public class CarCollection
{
public List<Car> Cars { get; set; }
public Car FindCarByModel(string model)
{
// code here
return new Car();
}
}
Якщо я роблю заняття ParkingLot, яка найкраща практика?
Варіант №1:
public class ParkingLot
{
public List<Car> Cars { get; set; }
//some other properties
}
Варіант №2:
public class ParkingLot
{
public CarCollection Cars { get; set; }
//some other properties
}
Чи є навіть гарною практикою створення ClassCollectionіншого Class?
public class CarCollectionне реалізовувати IList або ICollection, тощо ... таким чином ви не можете передати його до чогось, що нормально зі списком. У рамках своєї назви він стверджує, що це колекція, але не реалізує жоден із цих методів.
CarColectionз TotalTradeValueвласністю на нього. DDD - не єдиний спосіб розробити системи, просто вказавши його як варіант.
CarCollectionа неList<Car>навколо? Особливо враховуючи, що CarCollection не розширює клас списку резервних копій або навіть реалізує інтерфейс Collection (я впевнений, що у C # є подібні речі).