Sagen wir, ich habe eine Car
Klasse:
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 Car
Klasse verwenden, also CarCollection
erstellen 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 ClassCollection
anderes zu erschaffen Class
?
public class CarCollection
nicht 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.
CarColection
mit einer TotalTradeValue
Eigenschaft darauf. DDD ist nicht die einzige Möglichkeit, Systeme zu entwerfen, sondern weist lediglich darauf hin, dass dies eine Option ist.
CarCollection
eher 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).