ধরুন আপনার নিম্নলিখিতগুলি রয়েছে:
+--------+ +------+
| Animal | | Food |
+-+------+ +----+-+
^ ^
| |
| |
+------+ +-------+
| Deer | | Grass |
+------+ +-------+
Deerথেকে উত্তরাধিকার সূত্রে প্রাপ্ত Animal, এবং Grassউত্তরাধিকার সূত্রে প্রাপ্ত Food।
এ পর্যন্ত সব ঠিকই. Animalবস্তু বস্তু খেতে Foodপারে।
এবার এটি কিছুটা মিশ্রিত করা যাক। আসুন Lionযা থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয় Animal।
+--------+ +------+
| Animal | | Food |
+-+-----++ +----+-+
^ ^ ^
| | |
| | |
+------+ +------+ +-------+
| Deer | | Lion | | Grass |
+------+ +------+ +-------+
এখন আমরা কারণ একটি সমস্যা আছে Lionউভয় খেতে পারেন Deerএবং Grass, কিন্তু Deerকরা হয় না Foodএটা Animal।
একাধিক উত্তরাধিকার ব্যবহার এবং অবজেক্ট ওরিয়েন্টেড ডিজাইন ব্যবহার করে আপনি কীভাবে এই সমস্যার সমাধান করবেন?
এফওয়াইআই: ASCII ডায়াগ্রামগুলি তৈরি করতে আমি http://www.asciiflow.com ব্যবহার করেছি ।
IHuntable, মেষ এবং গরু হ'লIHerdable (মানুষের দ্বারা নিয়ন্ত্রিত), এবং সিংহ কেবল আইএনিমাল প্রয়োগ করে, যা কোনও ইন্টারফেসের দ্বারা বোঝায় না। AOE3 কোনও নির্দিষ্ট অবজেক্ট (অনুরূপ instanceof) দ্বারা সমর্থিত ইন্টারফেসগুলির সেট অনুসন্ধান করতে সহায়তা করে যা কোনও প্রোগ্রামকে তার ক্ষমতা জিজ্ঞাসা করতে সক্ষম করে allows