आइए कहते हैं कि मेरे पास एक 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 समर्थन सूची वर्ग का विस्तार नहीं करता है, या यहां तक कि संग्रह इंटरफ़ेस भी लागू करता है (मुझे यकीन है कि C # में समान चीजें हैं)।