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

Java Discussion :

[conception] reprise classes mal pensées


Sujet :

Java

  1. #1
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut [conception] reprise classes mal pensées
    Salut,

    espérond que je ne sois pas le seul à bosser par ce superbe lundi de pentecote

    Voilà, je suis depuis quelques temps en train d'apporter quelques modification à des classes déjà existantes. Elle sont peu documentées et ont été développées par plusieurs personnes différentes. Apres une phase de "je découvre comment ça marche" je suis en train de me dire que .... c'est pas possible, faut que je remette tout au propre.

    J'ai donc deux trois ptites questions au sujet de la conception ...

    Ces classes se ressemblent beaucoup et je suis sûr que de l'héritage est possible. Seulement chacune des classes est utilisée à travers un main assez mastoc.

    -> implémenter de l'héritage est il judicieux ? Faudra quand meme que j'ai un main dans chaque classe ...

    -> mieux vaut il que je cherche un autre moyen de généraliser le code ?


    Dans le traitement, il y a de (très) nombreux System.exit et celà quitte le programme de manière assez crado (pas de fermeture de session ouverte par exemple)

    -> Existe t'il un moyen de mettre un handler sur les exit pour effectuer un traitement qui ferme proprement à la place de chercher tous les endroits du code et d'y ajouter une fermeture propre ?


    Enfin, pour ceux qui ont l'experience

    -> Pour généraliser, il vaut mieux partir des variables communes, des méthodes communes ou carrément des fonctionnalités communes. Enfin bref, sur quoi baser le départ de ma généralisation ?
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  2. #2
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Citation Envoyé par in
    -> Existe t'il un moyen de mettre un handler sur les exit pour effectuer un traitement qui ferme proprement à la place de chercher tous les endroits du code et d'y ajouter une fermeture propre ?
    Tu peux ajouter un WindowListener à ta JFrame et définir la méthode windowClosing.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Je n'ai pas d'interface graphique. Les traitements sont lancés depuis un shell. Handler n'est peut etre pas le bon vocabulaire effectivement ...



    Je rajoute une petite précision sur mon problème :

    les classes sont bourrées d'attributs et de méthodes statiques.
    Si je les remonte dans une classe parente, faut il que je garde le static ? bien qu'il ne me semble pas vraiment approprié (c'est parce que tout est fait dans le main ...)
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 109
    Points : 122
    Points
    122
    Par défaut
    Regarde du côté de Runtime.addShutdownHook(Thread t)
    Cette méthode enregristre des threads qui sont démarrés à la fermeture de la JVM

  5. #5
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    merci,

    je regarderais ça ...

    mais pour l'instant, je voudrais réécrire les classes existantes. Et donc mes questions se tournent plutot vers l'héritage avec les main (est ce qu'il faut faire de l'héritage ou pas) et les membres statiques (et ce que je les vire si je peux)
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 109
    Points : 122
    Points
    122
    Par défaut
    En général, quand on a un main qui fait appel à des caisses d'attributs et de méthodes statiques, c'est signe de programmation procédurale.

    De plus les méthodes et attributs static se prètent mal au polymorphisme car ils ne sont pas résolus dynamiquement en fonction du type de l'objet mais du type de la référence. Je m'explique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class A {
    int toto = 1;
    }
    class B extends A {
    int toto = 2;
    }
     
    public static void main(...) {
    B b = new B();
    System.out.println(b.toto); //affiche 2
    A a = b;
    System.out.println(a.toto); //affiche 1 !!
    }
    D'ailleurs, en pratique, on n'utilise pas cette syntaxe mais plutôt A.toto et B.toto

    BRef, il y a des chances pour que si tu souhaites faire de l'héritage, il faille réfléchir à la pertinence de tout ce qui est static.

  7. #7
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Oui ça je pensais bien revoir les trucs static ...

    En fait ma question principale (désolé je n'ai pas été clair) c'est :

    Est-il judicieux de faire de l'héritage sachant que chaque classe fille possède un main ?

    Ou alors, faut il un seul main dans la classe parente ?

    Ou bien faut il que je regarde plutôt du côté classe abstraite ?

    Ou autre idée de conception ?


    PS : connaissez vous des liens qui traitent de la reprise d'application existantes ?
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 109
    Points : 122
    Points
    122
    Par défaut
    Citation Envoyé par in
    En fait ma question principale (désolé je n'ai pas été clair) c'est :

    Est-il judicieux de faire de l'héritage sachant que chaque classe fille possède un main ?
    Ah, j'avais raté ce point là. Si tu souhaites factoriser du code au moyen de l'héritage, il faut amha tenter de réduire au maximum le contenu de ces fameux main au profit d'une ou plusieurs méthode qui, elles, peuvent tirer parti du polymorphisme.

    Après, entre avoir 3 mains ou 1 seul... Je dirais qu'un point d'entrée unique, c'est plus pratique peut-être y a t il des facteurs externes qui t'en empèchent (c'est une réponse de normand...)

    Je n'ai pas de site mais le bouquin Refactoring de Martin Fowler est une référence

  9. #9
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Ok, bon je vais me lancer.

    Je laisse ce post ouvert car j'aurais surement d'autres questions unen fois que j'aurais plus avancé dans ma reprise ...

    merci
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

Discussions similaires

  1. Probleme de conception de classes
    Par Seth77 dans le forum C#
    Réponses: 11
    Dernier message: 31/01/2007, 09h40
  2. Conception de classes
    Par Seth77 dans le forum Général Dotnet
    Réponses: 8
    Dernier message: 15/01/2007, 15h57
  3. [POO] conception des classes
    Par poukill dans le forum C++
    Réponses: 229
    Dernier message: 19/07/2006, 08h28
  4. Conception de classe
    Par Azharis dans le forum C++
    Réponses: 9
    Dernier message: 17/12/2005, 10h15
  5. probleme de conception de classe
    Par NhyMbuS dans le forum C++
    Réponses: 2
    Dernier message: 08/05/2005, 17h10

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