Sono abbastanza nuovo nella programmazione orientata agli oggetti e ho una domanda su cui mi sono imbattuto riguardo alle migliori pratiche di ereditarietà.
Sto costruendo un sistema per le armi in un gioco. Ho una classe base chiamata Weapon e due sottoclassi - Melee e Projectile (come coltelli e pistole) - che ereditano da Weapon .
Tutte le armi hanno statistiche (come Attack Point) e parti (come Grip, Magazine e Blade). Le pistole e i coltelli della cabina hanno attacco e impugnatura. Ma solo le pistole hanno riviste e solo i coltelli hanno lama.
La mia domanda qui è come pensare quando si eredita da Weapon :
-
Tematicamente un'arma consiste di parti quindi sarebbe logico avere le classi
MeleeeProjectilecome responsabili di tutte le parti di cui è composta l'arma, quindiMeleeha un grip e una lama eProjectileha una presa e una rivista. Ma poi vorrei duplicare il campo Grip. -
Poiché entrambi i tipi di arma hanno Grip, Grip dovrebbe essere una parte della classe base
Weapon? Sembra strano estrapolare Grip e metterlo da solo in un'altra classe. -
Weaponcontiene tutte le parti, anche se le sottoclassi non le usano tutte? Ma sembra che aumenterò la classeWeapon.
Esiste una sorta di best practice? Grazie!