Salut,
Je m'orienterai vers un système POO avec une interface "Unité", représentant une unité quelconque, puis des classes abstraites "UnitéTypeMachin", représentant les unités par type (artillerie, char, fantassins,...), puis une classe par unité "UnitéArtillerieLourde".
A partir de là, les propriétés de l'unité (puissance de feu, cadence de tir, etc) seraient plutôt stockées soit dans la classe de l'unité, soit dans une classe séparée contenant les constantes de l'unité, comme "UnitéArtillerieLourdeCaracteristiques". Dans ce second cas, on pourra instancier une unité (UnitéArtillerieLourde) et associer à cette instance ses caractéristiques (UnitéArtillerieLourdeCaracteristiques), qui pourront alors dépendre de paramètres arbitraires: on allège la classe de l'unité en séparant son état (caractéristiques) de ses possibilités d'action (classe de l'unité). Sinon, on peut envisager d'associer le "UnitéArtillerieLourdeCaracteristiques" à la classe "UnitéArtillerieLourde" (et non à chaque instance) si les unités ont toutes les mêmes caractéristiques, ou bien ne pas faire de classe "caractéristiques" si la classe de l'unité est légère.
En BDD serait stockée l'instance de "UnitéArtillerieLourdeCaracteristiques", soit sous la forme d'un ensemble de paramètres (un par colonne si SQL), soit sous la forme d'une instance d'objet (NoSQL ou linéarisation).
Schéma:
<<Unité (Interface)>>
↑
<UnitéArtillerie (Abstraite)>
↑
UnitéArtillerieLourde (Classe) ← <<Unité (Interface)>>
↑
<UnitéArtillerie (Abstraite)>
↑
UnitéArtillerieLourde (Classe)
↑
UnitéArtillerieLourde (Instance) ← UnitéArtillerieLourdeCaracteristiques (Classe)
↑
UnitéArtillerieLourde (Instance) ← UnitéArtillerieLourdeCaracteristiques (Instance) ← {Stockage BDD}
Je m'orienterai vers un système POO avec une interface "Unité", représentant une unité quelconque, puis des classes abstraites "UnitéTypeMachin", représentant les unités par type (artillerie, char, fantassins,...), puis une classe par unité "UnitéArtillerieLourde".
A partir de là, les propriétés de l'unité (puissance de feu, cadence de tir, etc) seraient plutôt stockées soit dans la classe de l'unité, soit dans une classe séparée contenant les constantes de l'unité, comme "UnitéArtillerieLourdeCaracteristiques". Dans ce second cas, on pourra instancier une unité (UnitéArtillerieLourde) et associer à cette instance ses caractéristiques (UnitéArtillerieLourdeCaracteristiques), qui pourront alors dépendre de paramètres arbitraires: on allège la classe de l'unité en séparant son état (caractéristiques) de ses possibilités d'action (classe de l'unité). Sinon, on peut envisager d'associer le "UnitéArtillerieLourdeCaracteristiques" à la classe "UnitéArtillerieLourde" (et non à chaque instance) si les unités ont toutes les mêmes caractéristiques, ou bien ne pas faire de classe "caractéristiques" si la classe de l'unité est légère.
En BDD serait stockée l'instance de "UnitéArtillerieLourdeCaracteristiques", soit sous la forme d'un ensemble de paramètres (un par colonne si SQL), soit sous la forme d'une instance d'objet (NoSQL ou linéarisation).
Schéma:
<<Unité (Interface)>>
↑
<UnitéArtillerie (Abstraite)>
↑
UnitéArtillerieLourde (Classe) ← <<Unité (Interface)>>
↑
<UnitéArtillerie (Abstraite)>
↑
UnitéArtillerieLourde (Classe)
↑
UnitéArtillerieLourde (Instance) ← UnitéArtillerieLourdeCaracteristiques (Classe)
↑
UnitéArtillerieLourde (Instance) ← UnitéArtillerieLourdeCaracteristiques (Instance) ← {Stockage BDD}