ধরুন আমার কাছে কাস্টম অবজেক্ট রয়েছে, স্টুডেন্ট :
public class Student{
public int _id;
public String name;
public int age;
public float score;
}
এবং একটি ক্লাস, উইন্ডো , এটি কোনও শিক্ষার্থীর তথ্য প্রদর্শন করতে ব্যবহৃত হয় :
public class Window{
public void showInfo(Student student);
}
এটি দেখতে বেশ স্বাভাবিক দেখাচ্ছে, তবে আমি দেখতে পেয়েছি উইন্ডো পৃথকভাবে পরীক্ষা করা খুব সহজ নয়, কারণ ফাংশনটি কল করার জন্য এটির সত্যিকারের শিক্ষার্থী অবজেক্ট দরকার। তাই আমি শো ইনফোর সংশোধন করার চেষ্টা করি যাতে এটি কোনও স্টুডেন্ট অবজেক্টকে সরাসরি গ্রহণ না করে:
public void showInfo(int _id, String name, int age, float score);
যাতে পৃথকভাবে উইন্ডোটি পরীক্ষা করা সহজ হয় :
showInfo(123, "abc", 45, 6.7);
তবে আমি দেখেছি পরিবর্তিত সংস্করণে আরও একটি সমস্যা রয়েছে:
শিক্ষার্থী সংশোধন করুন (যেমন: নতুন বৈশিষ্ট্য যুক্ত করুন) শো-ইনফো-এর পদ্ধতি-স্বাক্ষর সংশোধন করা দরকার
শিক্ষার্থীর যদি অনেক সম্পত্তি থাকে তবে শিক্ষার্থীর পদ্ধতি-স্বাক্ষরটি দীর্ঘ হবে।
সুতরাং, কাস্টম অবজেক্টগুলিকে প্যারামিটার হিসাবে ব্যবহার করে বা প্রতিটি সম্পত্তিকে প্যারামিটার হিসাবে গ্রহণ করুন, কোনটি আরও রক্ষণাবেক্ষণযোগ্য?
intপরামিতি রয়েছে। কল সাইট থেকে, কোনও সত্যায়িত নেই যে আপনি তাদেরকে যথাযথ ক্রমে উত্তীর্ণ করছেন। আপনি যদি অদলবদল করেন idএবং age, বা firstNameএবং lastName? আপনি ব্যর্থতা যে পর্যন্ত এটি আপনার মুখে আপ হাতাহাতি সনাক্ত করতে খুব কঠিন হতে পারে এর একটি সম্ভাব্য বিন্দু প্রবর্তন করছি, এবং আপনি এটা যোগ করছি প্রতি কলের সাইটে ।
showForm(bool, bool, bool, bool, int)পদ্ধতি - আমি সেগুলিকে ভালবাসি ...
showInfoজন্য একটি সত্যিকারের স্ট্রিং, একটি আসল ফ্লোট এবং দুটি আসল ইনস্ট দরকার। সত্যিকারেরStringবস্তু সরবরাহের চেয়ে কীভাবে একটি বাস্তবStudentঅবজেক্ট সরবরাহ করা যায়?