আসুন বলুন আমার একটি 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>
? বিশেষ করে দেওয়া হয়েছে যে কারকলিকেশন ব্যাকিং লিস্টের ক্লাসটি বাড়ায় না, বা এমনকি কালেকশন ইন্টারফেসটি বাস্তবায়ন করে না (আমি নিশ্চিত যে সি # তে একই জিনিস রয়েছে)।