Ho una classe chiamata BagItem e un'altra classe chiamata EquipmentItem entrambe le classi sono esatte lo stesso nei metodi, ecc, con l'eccezione di 1 proprietà.
BagItem have:
public InventoryBagType BagType { get; private set; }
EquipmentItem have:
public InventoryEquipmentType EquipmentType { get; private set; }
Credo che dovrei menzionare, BagItem si riferisce agli oggetti che sono nella borsa del personaggio mentre EquipmentItem avrei dovuto probabilmente chiamarlo EquippedItem che si riferisce all'articolo attualmente equipaggiato dal personaggio.
Da quelle 2 classi ho altre classi che ereditano dall'una o dall'altra.
Quindi da EquipmentItem ad esempio ho CombatEquipmentItem che eredita da EquipmentItem e CombatEquipmentItem hanno solo una proprietà extra.
public CombatEquipmentType SlotType { get; private set; }
A questo punto non so se CombatEquipmentItem avrà o meno più proprietà o metodi, né se né BagItem né EquipmentItem .
Stavo considerando di creare ancora un'altra classe InventoryItem che terrebbe tutte le voci comuni da BagItem e EquipmentItem e che erediterebbero da esso e dal suo turno CombatEquipmentItem da esso.
Devo eliminare BagItem e EquipmentItem per InventoryItem e mantenere entrambe le proprietà lì e impostare uno o l'altro come null in base all'elemento ed ereditare qualcos'altro da esso o dovrei andare avanti con un'altra classe o il mio design è cattivo dall'inizio e come avrebbe dovuto essere scritto come?