IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Conseils conception logiciel


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 10
    Par défaut Conseils conception logiciel
    Bonjour à toutes et tous,

    J'espère ne pas m'être trompé de section pour poster ma demande... Si c'était le cas, je m'en excuse auprès du modo.

    Je suis actuellement en train de réfléchir au développement d'un programme permettant de créer des listes d'armée pour un jeu de simulation (en l’occurrence Warhammer Battle). Je dois créer plusieurs types de personnages composés des mêmes caractéristiques (une dizaine), mais avec des valeurs différentes pour chacun. Par ailleurs, je devrai aussi créer des types d'équipement qui modifieront les caractéristiques de mes personnages. Je me demandais quelle serait la meilleur solution:
    • créer une classe par type de personnage (sachant que j'en ai plusieurs centaines!)
    • ou tout répertorier dans un fichier XML, sachant que les caractéristiques de chaque personnage restent fixes, pour ensuite désérialiser


    Le fait est que je peux créer une classe de base (peut-être une classe abstraite?) et que chaque personnage en dériverait, mais je vais vite me retrouver avec une montagne de classes, ce qui n'est peut-être pas l'idéal.

    Bref, je voudrais avoir votre avis sur la solution la plus efficace. Petite précision: je suis novice en JAVA et, à ce titre, il y a encore des concepts qui ne sont pas totalement claires pour moi (notamment les abstractions et les interfaces).

    Merci beaucoup de votre aide et longue vie à ce site!

    Alex

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Il n'y a aucun intérêt à créer des classes différentes si les objets ont toujours le même comportement et que seules leurs caractéristiques changent. Comme te le laissait penser, en effet, le fait qu'il y en ait des centaines.

    Pour remplir ces caractéristiques, je conseille pas spécialement le XML. Ça a l'air d'être tout simple, tu peux le faire avec des .properties ou des CSV-like par exemple.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 10
    Par défaut
    Salut Thelvin et merci de ta réponse.

    Tu as résumé la situation mieux que je ne l'aurait fait: mes personnages diffèrent uniquement par la valeur de leurs caractéristiques, leurs méthodes consisteront toutes à, éventuellement, leur appliquer des modificateurs.

    Pour le CSV, pas trop de souci je pense; j'imagine qu'il être plus facile d'interagir avec ce format qu'avec le XML (enfin, j'espère...)

    En revanche, je ne connaît absolument pas les .properties, peux-tu m'en dire un peu plus?

  4. #4
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 771
    Par défaut
    Il faut tester le principe surtout que "les caractéristiques" peuvent avoir plusieurs significations, mais les traits sont un bon candidat

    En gros, tu crées 2 classes template: human/ personnage, armor/ arme.
    Peut-être que dans ta classe human/ personnage tu auras une collection d'armor/ arme

    Et ensuite, tu vas créer des traits pour chaque type d'human/ personnage et chaque armor/ arme.

    Alors effectivement, cela va sûrement faire "une montagne de classes", mais je pense que cela sera mieux que parser un fichier
    Et un bon IDE te permettras de naviguer rapidement dans toutes tes classes.

    À voir

    Édit: Faire cela en Java n'est pas réellement possible

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 10
    Par défaut
    Citation Envoyé par foetus Voir le message
    Il faut tester le principe surtout que "les caractéristiques" peuvent avoir plusieurs significations, mais les traits sont un bon candidat
    Les traits? Je ne connaissais absolument pas ce type de classe, je vais me renseigner. Merci de l'info.

    Citation Envoyé par foetus Voir le message
    En gros, tu crées 2 classes template: human/ personnage, armor/ arme.
    Peut-être que dans ta classe human/ personnage tu auras une collection d'armor/ arme
    C'était un peu mon intuition de départ mais la mise en oeuvre est encore un peu embrouillée, j'ai un peu de mal à imaginer comment ajouter les valeurs de caractéristiques contenues dans la classe arme aux même caractéristiques de la classe personnage (c'est peut-être pas très clair...). A voir, donc.

    Citation Envoyé par foetus Voir le message
    Faire cela en Java n'est pas réellement possible
    Tu parles des traits? Cela expliquerait pourquoi je n'ai entendu parler de ça nulle part... Je vais quand même creuser de ce côté.

    Je pense que je vais mélanger les 2 méthodes: stockage des caractéristiques dans des fichiers CSV et un système d'héritage, étant donné que je vais devoir créer quelques personnages avec des profils spécifiques (comme des cavaliers qui cumulent leur profil avec celui de leur monture, ou des pièces d'artillerie qui font appel à 3 profils!).

    Merci beaucoup de votre aide, je reste à l'affût de la moindre idée.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Qu'ils soient possibles ou non, les traits consistent à avoir une multitude de classes et l'intérêt en est plus que douteux quand le comportement est toujours le même et que seules les caractéristiques changent. Ce genre de mauvaises conceptions se paie de manière
    ... Quand, par contre, il y a des comportements différents et pas juste une affaire de points, c'est une autre histoire. Mais, effectivement, il est probable qu'une hiérarchie simple d'interfaces et classes suffisent.

    Citation Envoyé par ArsRobota Voir le message
    En revanche, je ne connaît absolument pas les .properties, peux-tu m'en dire un peu plus?
    Avant tout je précise qu'à mon avis, si les données sont toujours le même genre, il vaut mieux un CSV, ou un CSV par genre de données. (Un CSV humains, un CSV armures par exemple.) Ces trucs-là peuvent même être lus/modifiés avec Excel.

    Donc, les fichiers .properties. En gros c'est comme un fichier INI mais sans section. Un ensemble de paires nom/valeur. Nettement plus simple à gérer qu'un XML, mais pas capable des mêmes choses... Dont on a pas besoin dans le cas présent.
    J'ai pas trouvé de tutoriel ici, mais j'en ai trouvé un là : http://www.mkyong.com/java/java-prop...file-examples/
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Conseils pour conception logicielle en php
    Par mithrendil dans le forum Langage
    Réponses: 14
    Dernier message: 07/02/2008, 17h19
  2. demande de conseil conception site web e-commerce
    Par jsdar dans le forum E-Commerce
    Réponses: 4
    Dernier message: 10/04/2007, 16h38
  3. conseil conception espace client
    Par grinder59 dans le forum Langage
    Réponses: 9
    Dernier message: 04/04/2007, 11h46
  4. Conception logiciel en C# et multithreading jusqu'où?
    Par pi100 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 21/02/2007, 19h33
  5. [Forum][Conseil] Quel logiciel de forum choisir (gratuit ou jusqu'à +- 20EUR)
    Par sjrd dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 20/01/2006, 09h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo