আসুন বলুন আমার একটি 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আইলিস্ট বা আইকোলিকেশন ইত্যাদি বাস্তবায়ন করে না ... সুতরাং আপনি এটি কোনও তালিকার সাথে ঠিক আছে এমন কিছুতে প্রেরণ করতে পারবেন না। এটি এর নামের অংশ হিসাবে দাবি করে যে এটি একটি সংগ্রহ, তবে এই পদ্ধতিগুলির কোনও প্রয়োগ করে না।
CarColectionএকটি TotalTradeValueসম্পত্তি থাকবে। সিস্টেম ডিজাইন করার একমাত্র উপায় ডিডিডি নয়, কেবল এটি বিকল্প হিসাবে চিহ্নিত করা।
CarCollectionচেয়ে বরং পাশ কাটিয়ে কী লাভList<Car>? বিশেষ করে দেওয়া হয়েছে যে কারকলিকেশন ব্যাকিং লিস্টের ক্লাসটি বাড়ায় না, বা এমনকি কালেকশন ইন্টারফেসটি বাস্তবায়ন করে না (আমি নিশ্চিত যে সি # তে একই জিনিস রয়েছে)।