Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : conception java [ Divers / Débutant(e) ] (samplaid)

samedi 19 avril 2008 à 13:52:15 | conception java

samplaid

J'ai plusieur problèmes de conceptions surtout pour l'héritage.
Imaginons que je construises un arbre tel que celui-ci. J'aimerais savoir quelle est la meilleure implémentations

[code]
class Tree {
    protected String value = null;
    private Tree racine = null;
    private static String expression;

    public Tree() {}
    public Tree(String exp) {
       racine = createChildren();
    }
    protected Tree createChildren() {
         String tabExp[] = expression.split(" ");
         String commande = tabExp[0];

         for(int i = 1; i < tabExp.length(); ++i)
                expression += tabExp[i]

         if(commande.equals('...'))
             return new A(expression);
         else if(commande.equals('...'))
             return new B(expression);
          else
             return new C();
         return null;
    }
   ...
}


// les objets de la classe A n'ont qu'un fils de gauche!
class A extends Tree {
    public A(String exp) {
       super();
       left = createChildren(exp);
    }
}

// les objets de la classe B ont 2 fils!
class B extends Tree {
    public B() {
       super();
       left = createChildren();
       right = createChildren();
    }
}


// les objets de la classe C n'ont pas de fils !
class C extends Tree {
    public C() {
       super();
    }
}
[/code]

- Les objets de la classe C sont des feuilles de l'abre. Est-il grave que j'hérite des pointeurs null tel que left et right si je ne les utilisent pas. Est-il mieux de ne pas mettre left et right dans Tree mais ajouter
    - left dans la classe A
    - left et right dans la classe A et B

- J'ai implémenté C de manière conceptuelle mais C correspond  à Tree. Faut-il l'implémenter pour garder le concept ou non?

J'ai également ajouter la donnée membre racine pour le concept alors que si mon arbre a un fils il est automatiquement de gauche(left). Est-ce correcte de rajouter racine ou c'est mieux de travailler à partir de left?

MERCI de m'éclairer

samedi 19 avril 2008 à 19:12:46 | Re : conception java

Kysic

Membre Club
Salut,
je penses qu'il est assez dur de ce prononcer sur un problème de modélisation sans savoir ce que l'on modélise, toutes sorte de solutions sont possibles, après cela dépend de ce qu'on veut en faire.
Par exemple on pourrait imaginer un héritage C<-A<-B, ou left et createChildren() serait défini dans A et right défini dans B, ou des classes Feuille et Noeud plus générale.
En fait le plus gros problème est je penses au niveau de ta string "expression;".
Soit tu en fait un attribut protected que tu passe en paramètre (le plus propre sans doute), soit tu le laisse static mais alors ça ne sert à rien de le passer en paramètre de A et B (dans le constructeur Tree tu ne l'utilise d'ailleurs pas).



Cette discussion est classé dans : string, classe, expression, left, tree


Répondre à ce message

Sujets en rapport avec ce message

précision exo java sur implémentation [ par so250581 ] Bonjour, j'ai réalisé un sujet d'exercice sur les implémentations en java. J'ai mis les réponses que je pensais mais je n'en suis pas du tout sûr. Pou Graphes et expressions arithmétiques (Etudiant en galère !!!) [ par mrginto ] Bonjour, On a vite fait appris la prog en Java pour faire une petite interface graphique nous permetant de créer des figures, de le déplacer , grouper Expression dynamique [ par kityof33 ] je possède une fenêtre avec 3 boutons (Button class) nommés Rouge, Vert et Bleu.J'ai une methode assignColor qui a pour parametre une String S1 qui pe Problème avec 1 exo java en JDBC, réalisation d'une classe ArrayDB et interface DataBasable [ par kheops06 ] Je suis débutant en Java et je dois réaliser un exo en JDBC, et je n'y comprend pas grand chose. Je dois réaliser une classe (ArrayDB) et une interfac Ajout de methodes a la classe String [ par moimadmax ] Je travaille sur un programme qui lit un fichier et qui doit trouver des mot clef dans ce fichier et faire une action en fonction de ce mot clefje dec Problème ClassNotFoundException avec des jsp et tomcat [ par guitza87 ] Bonjour tout le monde !Voila je débute en jsp, et pour commencer j'ai voulu créer une classe "Principale" sous JBuilder avec des getter puis afficher Path d'une classe en string [ par Thundrax ] Vous allez me prendre pour un fou mais j'ai besoin du path d'ou se trouve ma classe (sans la définir en dur).Alors ma combine actuel c'est :========== String comme paramètre!!!pb [ par othland ] slt tlm:je voulais concevoir une classe auquelle je fais appel avec une chaine de caractères comme argument, cette chaine de caractère n'est autre que conversion d'une expression infixée en une expression postfixée (Probleme avec les parenthés ds l'expression) [ par Strick9 ] Salut a tous, j ai un probleme lors de la coversion d'une expression arithmétique infixée ( exemple:  4 * 3 / ( 2 + 2 )      ) en un exprssion arithme expression régulière [ par ludoW21 ] Bonjour,quelqu'un  peut-il m'aider? je ne connais pas les expressions régulières. Bref, voici mon problème.J'ai par exemple la String suivante :    ro


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,45 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.