Ayo bilang aku ada Car
kelas:
public class Car
{
public string Engine { get; set; }
public string Seat { get; set; }
public string Tires { get; set; }
}
Katakanlah kita membuat sistem tentang tempat parkir, saya akan menggunakan banyak Car
kelas, jadi kami membuat CarCollection
kelas, mungkin ada beberapa metode tambahan seperti FindCarByModel
:
public class CarCollection
{
public List<Car> Cars { get; set; }
public Car FindCarByModel(string model)
{
// code here
return new Car();
}
}
Jika saya membuat kelas ParkingLot
, apa praktik terbaik?
Pilihan 1:
public class ParkingLot
{
public List<Car> Cars { get; set; }
//some other properties
}
Pilihan 2:
public class ParkingLot
{
public CarCollection Cars { get; set; }
//some other properties
}
Apakah ini merupakan praktik yang baik untuk menciptakan yang ClassCollection
lain Class
?
public class CarCollection
tidak menerapkan IList atau ICollection, dll ... sehingga Anda tidak dapat meneruskannya ke sesuatu yang ok dengan daftar. Ia mengklaim sebagai bagian dari namanya bahwa itu adalah koleksi, tetapi tidak menerapkan metode-metode tersebut.
CarColection
dengan TotalTradeValue
properti di atasnya. DDD bukan satu-satunya cara untuk merancang sistem, hanya menunjukkannya sebagai opsi.
CarCollection
daripadaList<Car>
sekitar? Terutama mengingat bahwa CarCollection tidak memperpanjang kelas Daftar backing, atau bahkan mengimplementasikan antarmuka Koleksi (saya yakin bahwa C # memiliki hal serupa).