Jeśli wszystko, czego naprawdę potrzebujesz, to sposób definiowania składników Potwora, to XML działałby dobrze zarówno w języku C #, jak i java błyskawicznie go implementuje.
Twój xml może być
<?xml version="1.0" encoding="UTF-8"?>
<mobs>
<mob>
<personality>Aggressive</personality>
<intelligence>20</intelligence>
</mob>
</mobs>
Wtedy mogłaby wyglądać twoja klasa mafijna. (Jawa)
public class Mob {
private IPersonality personality;
private Integer intelligence
//** Getters & Setters **//
}
Gdzie IPersonality jest interfejsem.
Następnie możesz załadować swój plik XML i przeanalizować każdą wartość w fabryce.
na przykład Parsuj wartość osobowości do PersonalityFactory, który jest po prostu:
public IPersonality getPersonality(String personalityName) {
if(personalityName.equals("Aggressive")) {
return new AggressivePersonality();
}
else if(personalityName.equals("Passive")) {
return new PassivePersonality();
}
else {
//Maybe allow for no personality (We all know monster like that ;) )
return null;
}
}
Następnie możesz ustawić taki tłum
Mob mob = new Mob();
mob.setPersonality(getPersonality(xmlValue));
mobList.add(mob);
Kluczem jest to, że silnik zna format xml i ma fabrykę dla wszystkich potrzeb.
Jedną z zalet xml jest to, że możesz zdefiniować własny schemat, aby mieć pewność, że format jest zawsze poprawny, zobacz tutaj .
Mam nadzieję że to pomoże