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?