আমি জিআরএসপি শিখতে চেষ্টা করছি এবং লো কাপলিংয়ের সম্পর্কে এটি ব্যাখ্যা করা ( 3 পৃষ্ঠায় এখানে ) পেয়েছি এবং এটি পেয়ে আমি খুব অবাক হয়েছিলাম:
শ্রেণীর
addTrackজন্য পদ্ধতিটি বিবেচনা করুনAlbum, দুটি সম্ভাব্য পদ্ধতি হ'ল:
addTrack( Track t )এবং
addTrack( int no, String title, double duration )কোন পদ্ধতিতে মিলন হ্রাস হয়? দ্বিতীয়টি করে, যেহেতু অ্যালবাম ক্লাস ব্যবহার করে ক্লাসটি একটি ট্র্যাক ক্লাস জানতে হবে না। সাধারণভাবে, পদ্ধতিগুলির প্যারামিটারগুলিতে জাভা থেকে বেস টাইপ (ইনট, চর ...) এবং ক্লাস ব্যবহার করা উচিত *
আমি এই সাথে ডায়াগ্রির ঝোঁক; আমি বিশ্বাস করি addTrack(Track t)বেশী ভালো addTrack(int no, String title, double duration)বিভিন্ন কারণে:
যতটা সম্ভব কম প্যারামিটার করা কোনও পদ্ধতির পক্ষে সর্বদা ভাল (চাচা বব এর ক্লিন কোড অনুসারে কেউ বা একটিও নয়, কিছু ক্ষেত্রে 2 এবং বিশেষ ক্ষেত্রে 3 টিরও বেশি রিফ্যাক্টরিং প্রয়োজন - এগুলি অবশ্যই সুপারিশগুলি হোল বিধি নয়) ।
যদি
addTrackকোনও ইন্টারফেসের কোনও পদ্ধতি হয় এবং প্রয়োজনীয়তার প্রয়োজন হয় যেTrackএকটিতে আরও তথ্য থাকা উচিত (বলুন বছর বা জেনার) তবে ইন্টারফেসটি পরিবর্তন করা দরকার এবং যাতে পদ্ধতিটি অন্য প্যারামিটার সমর্থন করে।এনক্যাপসুলেশন ভেঙে গেছে; যদি
addTrackকোনও ইন্টারফেসে থাকে, তবে এটির ইন্টারনালগুলি জানা উচিত নয়Track।এটি বেশিরভাগ পরামিতি সহ দ্বিতীয় উপায়ে আরও সংযুক্ত হয়। ধরুন
noপ্যারামিটারটি বদলে নেওয়াintদরকারlongকারণMAX_INTট্র্যাকের চেয়ে বেশি রয়েছে (বা যে কোনও কারণেই); তবেTrackপদ্ধতি এবং পদ্ধতি উভয়ই পরিবর্তন করা দরকার যখন পদ্ধতিটিaddTrack(Track track)কেবলমাত্রTrackপরিবর্তিত হত।
সমস্ত 4 টি যুক্তি প্রকৃতপক্ষে একে অপরের সাথে সংযুক্ত এবং সেগুলির কিছু অন্যের পরিণতি।
কোন পদ্ধতির ভাল?