السلام عليكم

في مشروع مادة البرمجة كان تصميم تسلسل هرمي Class Hierarchy Design أحد الأهداف لكن لم أغتنم الفرصة لأسأل عن مدى جودة تصميمي وبالخصوص عن مشكلة نشأت من رغبتي في استخدام Abstract Classes وInterfaces معا.

التصميم:

الصفحة التالية توضح التسلسل الخاص بكائنات اللعبة: http://omarwkh.github.io/ICS102SpaceShooter/gameobjects/package-tree.html

كل الكلاسات تابعة لـAbstract Class والتي بدورها تتبع Interface.

السؤال:

الإشكال يكمن في إضافة خاصية الرمي إلى بعض السفن. أردت أن يملك كل Shooter دوال AbstractGameObject حتى أبسط التعامل معه في منطق اللعبة، في نفس الوقت أردت أن يكون الرمي خاصية تضاف إلى السفن وليست موجودة في كل السفن بالضرورة.

حلي أدى لوجود GameObject وAbstractGameObject رغم الحاجة للثانية فقط في الحالة العادية. لا يبدو هذا حلا مثاليا، هل يوجد حل أفضل؟