আমি মনে করি এটি দুর্দান্ত হবে যে ট্রল এবং ওয়েয়ারওয়ल्फ উভয়ই শত্রুর কাছ থেকে এর বৈশিষ্ট্য উত্তরাধিকার সূত্রে পেয়েছে এবং এর মধ্যে কিছুগুলি ওভাররোট করে।
দুর্ভাগ্যক্রমে 90-এর দশকে জনপ্রিয় পলিমারফিজমের এই দৃষ্টিভঙ্গি অনুশীলনে নিজেকে খারাপ ধারণা হিসাবে দেখিয়েছে। ভাবুন যে আপনি শত্রু তালিকায় 'নেকড়ে' যুক্ত করেছেন - ভাল, এটি ওয়েয়ারউফের সাথে কিছু বৈশিষ্ট্য ভাগ করে, তাই আপনি সেগুলি একটি ভাগ করা বেস শ্রেণিতে যেমন একত্রীকরণ করতে চান। 'WolfLike'। এখন আপনি শত্রু তালিকায় 'হিউম্যান' যুক্ত করেছেন, তবে জেরুভূমি কখনও কখনও মানুষ হয়ে থাকে, সুতরাং এগুলি বৈশিষ্ট্যগুলিও ভাগ করে তোলে, যেমন 2 পায়ে হাঁটা, কথা বলতে সক্ষম হওয়া ইত্যাদি you আপনি কি মানব এবং নেকড়েদের জন্য 'হিউম্যানয়েড' সাধারণ বেস তৈরি করেন? , এবং এরপরে কি আপনাকে ওল্ফলাইকগুলি থেকে ওল্ফলাইক থেকে নেওয়া বন্ধ করতে হবে? অথবা আপনি উভয় থেকে বহুগুণ লাভ করেন - কোন ক্ষেত্রে, হিউম্যানয়েডের কোনও কিছু যখন ওল্ফলাইকের সাথে সংঘর্ষে লিপ্ত হয় তখন কোন বৈশিষ্ট্যটি প্রাধান্য পায়?
সমস্যাটি হ'ল শ্রেণীর গাছ হিসাবে বাস্তব বিশ্বের চেষ্টা এবং মডেলটি অকার্যকর। যে কোনও 3 টি জিনিস নিন এবং আপনি সম্ভবত 4 টি বিভিন্ন উপায় তাদের আচরণকে ভাগ করে নেওয়া এবং ভাগ না করে ভাগ করার জন্য বিভিন্ন উপায় খুঁজে পেতে পারেন। এ কারণেই অনেকে পরিবর্তে একটি মডুলার বা উপাদান-ভিত্তিক মডেলটির দিকে ঝুঁকছেন, যেখানে কোনও বস্তু বেশ কয়েকটি ছোট ছোট বস্তুর সমন্বয়ে গঠিত যা পুরোটি তৈরি করে এবং ছোট বস্তুগুলি অদলবদল হতে পারে বা আপনার পছন্দসই আচরণটি পরিবর্তন করতে পারে। এখানে আপনার মাত্র 1 শত্রু শ্রেণি থাকতে পারে এবং এটি কীভাবে চলবে তার উপ-অবজেক্টস বা উপাদানগুলি রয়েছে (উদাহরণস্বরূপ বাইপিডাল বনাম চতুর্ভুজ), এর আক্রমণ করার পদ্ধতি (যেমন, কামড়, নখ, অস্ত্র, মুষ্টি), এর ত্বক (সবুজ ট্রলগুলির জন্য, নেকড়ে ও নেকড়েদের জন্য ফ্যারি) ইত্যাদি
এটি এখনও পুরোপুরি অবজেক্ট-ভিত্তিক, তবে একটি দরকারী বস্তু কী তা ধারণাটি পাঠ্য বইয়ে সাধারণত পড়ানো হতো তার থেকে আলাদা। গাছের টিপসগুলিতে বিভিন্ন বিমূর্ত শ্রেণীর এবং বেশ কয়েকটি কংক্রিট শ্রেণীর বৃহত উত্তরাধিকারী গাছ থাকার পরিবর্তে আপনার সাধারণত সাধারণত 1 টি কংক্রিট ক্লাস থাকে যা একটি বিমূর্ত ধারণাটি উপস্থাপন করে (যেমন 'শত্রু') তবে এতে আরও বিমূর্ত ধারণা উপস্থাপনকারী আরও কংক্রিট শ্রেণি রয়েছে (যেমন আক্রমণ, ত্বকের ধরণ)। কখনও কখনও এই দ্বিতীয় শ্রেণিগুলি উত্তরাধিকারের 1 স্তরের মাধ্যমে সর্বোত্তমভাবে প্রয়োগ করা যেতে পারে (উদাহরণস্বরূপ একটি বেস অ্যাটাক শ্রেণি এবং নির্দিষ্ট হামলার জন্য কয়েকটি উত্পন্ন শ্রেণি) তবে গভীর উত্তরাধিকার গাছ চলে যায়।
তবে ক্লাসগুলি ব্যবহারিক হতে খুব ভারী, আমি জানি না ...
বেশিরভাগ আধুনিক ভাষায় ক্লাসগুলি 'ভারী' হয় না। এগুলি কোড রচনার অন্য একটি উপায় এবং এগুলি সাধারণত সহজ বাক্য বিন্যাস ব্যতীত আপনি যেভাবে প্রক্রিয়াকরণের পদ্ধতিটি লিখেছিলেন তা কেবল মোড়ানো হয়। তবে সব উপায়েই, কোনও শ্রেণি যেখানে কোনও ফাংশনটি করবে তা লিখবেন না। ক্লাসগুলি অভ্যন্তরীণভাবে আরও ভাল হয় না, কেবলমাত্র যেখানে তারা কোড পরিচালনা বা বোঝার জন্য সহজ করে।