실제로 필요한 것이 Monster의 구성 요소를 정의하는 방법이라면 XML은 C #과 java 모두 잘 작동합니다.
당신의 XML은
<?xml version="1.0" encoding="UTF-8"?>
<mobs>
<mob>
<personality>Aggressive</personality>
<intelligence>20</intelligence>
</mob>
</mobs>
그러면 당신의 폭도 클래스는 다음과 같습니다. (자바)
public class Mob {
private IPersonality personality;
private Integer intelligence
//** Getters & Setters **//
}
IPersonality는 인터페이스입니다.
그런 다음 XML을로드하고 팩토리를 통해 각 값을 구문 분석 할 수 있습니다.
예를 들어, Personality Factory로 Personality Value를 구문 분석하십시오.
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;
}
}
그럼 당신은 이렇게 폭도를 설정할 수 있습니다
Mob mob = new Mob();
mob.setPersonality(getPersonality(xmlValue));
mobList.add(mob);
핵심은 엔진이 XML의 형식을 알고 있으며 필요한 모든 팩토리를 가지고 있다는 것입니다.
xml의 한 가지 장점은 형식이 항상 올바른지 확인하기 위해 고유 한 스키마를 정의 할 수 있다는 것 입니다. 여기를 참조 하십시오 .
도움이 되었기를 바랍니다