Beste tweakers,
Ik had al eerder een topic geopend in verband met een werk dat we moeten maken voor school, en hier heb ik nu nog een vraag over. Mijn vorige vraag ging over de klasse "Hero". Objecten van deze klasse moet je zien als Hero's uit een MMORPG (uiteraard heel vereenvoudigd). Hero's moeten nu wapens kunnen dragen en harnassen alsook rugzakken die zowel wapens als harnassen als andere rugzakken kunnen bevatten. Rugzakken, wapens en harnassen hebben een aantal dingen gemeenschappelijk waaronder een veld "ID" en een veld "Holder". De Holder kan dus zowel een rugzak zijn als een Hero.
Hero is een zeer uitgebreide klasse die we dus eerder hadden uitgewerkt.
We moeten nu dus een efficiënte hïerchie zoeken van superklassen en/of interfaces. Het is voor ons redelijk duidelijk dat er een (abstracte) superklasse moet zijn waarvan wapens, harnassen en rugzakken van overerven.
Aan de andere kant zou er ook een superklasse Holder kunnen zijn waarvan Hero's en rugzakken overerven.
Meervoudige overerving in Java is echter niet mogelijk.
We doen het nu op volgende manier:

We gebruiken een interface Holder om het probleem van meervoudige overerving te vermijden. Dit is eigenlijk de enige reden waarom we een interface daarvoor gebruiken (en deze interface zal dus redelijk kaal zijn). Aangezien interfaces eigenlijk dienen om klassen te groeperen die dezelfde gedragingen hebben is het dus mss niet echt een verantwoorde keuze.
Er moet trouwens niet gelet worden op het feit dat "Weapon" en "Armor" overerven van een nogal niets zeggende klasse "Test1", dit is een tijdelijke benaming.
Verder laten we rugzak overerven van "Containable" omdat mss in de toekomst er nog handtassen oid kunnen bij komen
.
We zouden ook Portable als een interface kunnen definïeren maar dan kunnen we geen gemeenschappelijke velden e.d. definïeren.
In grote lijnen is ons probleem dus als volgt: 3 klassen die op elkaar gelijken: wapens, harnassen, rugzakken. En 2 klassen die ook 1 functie gemeenschappelijk hebben: rugzakken en Hero's.
We zoeken dus een goed klassen diagram.
We vragen ons dus af of er Tweakers zijn die al een dergelijk probleem hebben getackled en ons hier wat tips kunnen over geven.
Onze excuses voor de lange topicstart en bedankt voor de mensen die moeite hebben gedaan om tot hier te lezen
Bij voorbaat dank
Ik had al eerder een topic geopend in verband met een werk dat we moeten maken voor school, en hier heb ik nu nog een vraag over. Mijn vorige vraag ging over de klasse "Hero". Objecten van deze klasse moet je zien als Hero's uit een MMORPG (uiteraard heel vereenvoudigd). Hero's moeten nu wapens kunnen dragen en harnassen alsook rugzakken die zowel wapens als harnassen als andere rugzakken kunnen bevatten. Rugzakken, wapens en harnassen hebben een aantal dingen gemeenschappelijk waaronder een veld "ID" en een veld "Holder". De Holder kan dus zowel een rugzak zijn als een Hero.
Hero is een zeer uitgebreide klasse die we dus eerder hadden uitgewerkt.
We moeten nu dus een efficiënte hïerchie zoeken van superklassen en/of interfaces. Het is voor ons redelijk duidelijk dat er een (abstracte) superklasse moet zijn waarvan wapens, harnassen en rugzakken van overerven.
Aan de andere kant zou er ook een superklasse Holder kunnen zijn waarvan Hero's en rugzakken overerven.
Meervoudige overerving in Java is echter niet mogelijk.
We doen het nu op volgende manier:

We gebruiken een interface Holder om het probleem van meervoudige overerving te vermijden. Dit is eigenlijk de enige reden waarom we een interface daarvoor gebruiken (en deze interface zal dus redelijk kaal zijn). Aangezien interfaces eigenlijk dienen om klassen te groeperen die dezelfde gedragingen hebben is het dus mss niet echt een verantwoorde keuze.
Er moet trouwens niet gelet worden op het feit dat "Weapon" en "Armor" overerven van een nogal niets zeggende klasse "Test1", dit is een tijdelijke benaming.
Verder laten we rugzak overerven van "Containable" omdat mss in de toekomst er nog handtassen oid kunnen bij komen
We zouden ook Portable als een interface kunnen definïeren maar dan kunnen we geen gemeenschappelijke velden e.d. definïeren.
In grote lijnen is ons probleem dus als volgt: 3 klassen die op elkaar gelijken: wapens, harnassen, rugzakken. En 2 klassen die ook 1 functie gemeenschappelijk hebben: rugzakken en Hero's.
We zoeken dus een goed klassen diagram.
We vragen ons dus af of er Tweakers zijn die al een dergelijk probleem hebben getackled en ons hier wat tips kunnen over geven.
Onze excuses voor de lange topicstart en bedankt voor de mensen die moeite hebben gedaan om tot hier te lezen
Bij voorbaat dank