আমার কিছু কোড রয়েছে যেখানে উত্তম উত্তরাধিকারের মডেলটি উতরাইয় গিয়েছে এবং কেন এবং কীভাবে এটি ঠিক করতে হয় তা বোঝার চেষ্টা করছি। মূলত, কল্পনা করুন আপনার সাথে একটি চিড়িয়াখানার শ্রেণিবিন্যাস রয়েছে:
class Animal
class Parrot : Animal
class Elephant : Animal
class Cow : Animal
প্রভৃতি
আপনার খাওয়া (), রান () ইত্যাদি পদ্ধতি রয়েছে এবং সবই ভাল। তারপরে একদিন কেউ এসে বললেন - আমাদের কেজবিল্ডার ক্লাসটি দুর্দান্তভাবে কাজ করে এবং নতুন ডাবল আফ্রিকার বাইসন যা খুব শক্তিশালী এবং দেয়ালটি ছিন্নভিন্ন করতে পারে, ব্যতীত প্রাণী.ওয়েট () এবং অ্যানিমেল ডাইরাইট () ব্যবহার করে, তাই আমি যুক্ত করব প্রাণী শ্রেণীর আরও একটি সম্পত্তি - আফ্রিকানবিজন () এবং উপাদানটি বেছে নেওয়ার সময় এটি ব্যবহার করুন এবং এটি কেবল আফ্রিকানবিজন শ্রেণীর জন্য ওভাররাইড করুন। পরের ব্যক্তি আসেন এবং অনুরূপ কিছু করেন এবং পরবর্তী জিনিস আপনি জানেন যে আপনার কাছে এই সমস্ত বৈশিষ্ট্যগুলি বেস শ্রেণিতে শ্রেণিবদ্ধের কিছু উপসেটের জন্য নির্দিষ্ট।
এই জাতীয় কোডটি রিফ্যাক্টর উন্নত করার ভাল উপায় কী? এখানে একটি বিকল্প হ'ল প্রকারগুলি পরীক্ষা করার জন্য ডায়নামিক_কাস্টগুলি ব্যবহার করা হবে তবে কলারদের মধ্যে বিশৃঙ্খলা সৃষ্টি হয় এবং পুরো জায়গায় জুড়ে-পরে-অন্যত্র একটি গুচ্ছ যুক্ত হয়। আপনার এখানে আরও সুনির্দিষ্ট ইন্টারফেস থাকতে পারে তবে আপনার সমস্তটি যদি বেস ক্লাসের রেফারেন্স হয় তবে এটি খুব বেশি সহায়তা করে না। অন্য কোন পরামর্শ? উদাহরণ?
ধন্যবাদ!