le type as integer c'est pas top, il y a les enums pour faire plus joli
1 2 3 4
| public enum TypeEnum
personnage = 0
monstre = 1
end enum |
Public Function InitActorInfos(ByVal Type As TypeEnum) As Iqqch
dim a = InitActorInfos(personnage)
ca permet d'avoir de l'intellisense et d'éviter de chercher
après pour éviter le select case géant il y a des possibilités, le dictionary(of TypeEnum, System.Type) en est une, tu fais un .add par type, et dans le factory au lieu du select case tu fais un return createinstance(dico(Type)) (casté)
enfin un truc dans le genre
après pour éviter les .add dans le dico il y a aussi d'autres méthodes, comme se baser sur le nom de l'enum pour trouver la classe (pas très propre ^^) ou peut etre un attribut sur chaque classe et un peu de reflection, là ca permet de faire évoluer le code sans qu'il y ait des tas de liens à modifier car une classe devient automatiquement utilisée bien que non citée dans le "moteur"
Partager