Sagen wir, ich habe eine CarKlasse:
public class Car
{
public string Engine { get; set; }
public string Seat { get; set; }
public string Tires { get; set; }
}
Nehmen wir an, wir erstellen ein System für einen Parkplatz. Ich werde einen Großteil der CarKlasse verwenden, also CarCollectionerstellen wir eine Klasse. Möglicherweise gibt es einige zusätzliche Methoden wie FindCarByModel:
public class CarCollection
{
public List<Car> Cars { get; set; }
public Car FindCarByModel(string model)
{
// code here
return new Car();
}
}
Wenn ich eine Klasse mache ParkingLot, was ist die beste Übung?
Option 1:
public class ParkingLot
{
public List<Car> Cars { get; set; }
//some other properties
}
Option 2:
public class ParkingLot
{
public CarCollection Cars { get; set; }
//some other properties
}
Ist es überhaupt eine gute Praxis, ein ClassCollectionanderes zu erschaffen Class?
public class CarCollectionnicht implementiert IList oder ICollection, etc ... so kann man es nicht etwas übergeben , die mit einer Liste in Ordnung ist. Es behauptet als Teil seines Namens, dass es eine Sammlung ist, implementiert aber keine dieser Methoden.
CarColectionmit einer TotalTradeValueEigenschaft darauf. DDD ist nicht die einzige Möglichkeit, Systeme zu entwerfen, sondern weist lediglich darauf hin, dass dies eine Option ist.
CarCollectioneher an einem vorbei gehen als an einemList<Car>herum? Vor allem, weil CarCollection die Backing-List-Klasse nicht erweitert oder sogar die Collection-Schnittstelle implementiert (ich bin mir sicher, dass C # ähnliche Dinge hat).