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

Spring Java Discussion :

Quel code dans la couche services ?


Sujet :

Spring Java

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 142
    Points : 80
    Points
    80
    Par défaut Quel code dans la couche services ?
    J'ai une classe utilitaire qui comporte des méthodes pour le calcul d'un classement d'équipes (avec plus ou moins de critères partage).

    Une des méthodes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static final void calculerButsExt(List<Classement> equipesEgalite)
    permet de calculer les buts marqués à l'extérieur entre plusieurs équipes à égalité.
    Dans le corps de cette méthode, actuellement, je fais un appel dans une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    classementService.findCriteresParticuliersExterieurByTournoi(tournoi, uPs, uP1)
    qui elle-même fait appel à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    classementDAO.findCriteresParticuliersDomicileByTournoi(tournoi, uP1, uPs);
    .

    Si je comprends bien, actuellement à chaque itération dans la boucle, spring ouvre puis ferme une nouvelle session.

    Ne vaudrait-il mieux pas déplacer la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static final void calculerButsExt(List<Classement> equipesEgalite)
    dans la couche services (ClassementService) et remplacer le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    classementService.findCriteresParticuliersExterieurByTournoi(tournoi, uPs, uP1)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    classementDAO.findCriteresParticuliersDomicileByTournoi(tournoi, uP1, uPs);
    .

    Est-ce bien le rôle de la couche services ?

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2002
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 108
    Points : 98
    Points
    98
    Par défaut
    C'est bien ça. Il faudrait éviter les méthodes statiques si possible et les méthodes "business" dans les classes utilitaires. Une autre remarque, "private" et "final" en même temps, c'est redondant

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    En quoi l'utilisation conjointe de private et final est-elle redondante ?

    La couche métier est la couche qui gère la "logique métier", donc toutes les règles de ton application.

  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
    Citation Envoyé par fr1man
    En quoi l'utilisation conjointe de private et final est-elle redondante ?
    final empêche de redéfinir une méthode dans une sous classe.
    Or, une méthode private n'est visible dans une sous-classe donc on ne peut pas la redéfinir de toute manière.

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Ok, je suis d'accord la dessus, mais l'attribut private, évoque la notion
    de visibilité, ce que ne fait pas final.
    Car une métode "public final" ou "private final" ce n'est pas du tout la même chose.

  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
    Citation Envoyé par fr1man
    Ok, je suis d'accord la dessus, mais l'attribut private, évoque la notion
    de visibilité, ce que ne fait pas final.
    Car une métode "public final" ou "private final" ce n'est pas du tout la même chose.
    En effet, final est juste superflu (plutôt que redondant) dans le cas d'une méthode private. Et comme il est superflu, il est de coutume de ne pas l'indiquer.

    Ou alors l'auteur ne sais pas que c'est superflu et dans ce cas final traduit une intention fausse.

  7. #7
    Membre régulier
    Inscrit en
    Octobre 2002
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 108
    Points : 98
    Points
    98
    Par défaut
    Désolé, j'étais pas très clair dans mes commentaires.

    Merci MangeurVasqué.

  8. #8
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Ceci dit, une méthode private peut très bien être redéfinie dans une classe fille, ce qui n'est pas le cas de la private final.

  9. #9
    Membre régulier
    Inscrit en
    Octobre 2002
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 108
    Points : 98
    Points
    98
    Par défaut
    Qu'est ce que tu veux dire par "redéfinir une méthode privée" ???

  10. #10
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Oubliez mon dernier message, c'est une anerie

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 06/03/2017, 09h47
  2. [Débutant] Intégration d'une library STA mal codée dans un web service wcf
    Par Nadinette dans le forum Services Web
    Réponses: 2
    Dernier message: 19/11/2012, 14h38
  3. [DAO] Quel code dans les objets métier ?
    Par Gaetch dans le forum Design Patterns
    Réponses: 10
    Dernier message: 20/10/2011, 14h38
  4. Quel code dans mon actionPerformed?
    Par pbauquel dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 02/08/2008, 11h27
  5. Réponses: 3
    Dernier message: 01/03/2007, 21h26

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