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 :

Couplage fort et faible KEZAKO


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 134
    Points : 54
    Points
    54
    Par défaut Couplage fort et faible KEZAKO
    Bonjour à tous,

    Quelqu'un pourrait m'expliquer cette histoire de couplage faible et fort ?
    Auriez vous un exemple claire chat, chien, animaux ect ....

    Si vous avez un schéma c'est encore mieux.

    Voici les class que j'ai:
    • Interface => IParticipant
    • Implem => ImplParticipantDao implement IParticipant
    • DAO => ParticipantDao (Il y a le court des fcts)
    • Metier => Participant (Get et Set)


    Ps: j'espère que je suis au bon endroit pour parler de ce sujet
    Merci à tous

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 290
    Points : 426
    Points
    426
    Par défaut
    Ce que je comprends des problématiques de couplages, c'est quand tu as 2 composants qui dépendent l'un de l'autre alors que conceptuellement ils devraient être indépendant.

    Exemple: un chien, tu lui donne des croquettes. La marque tu t'en fiche un peu : en début de mois, tu achètes du royal kanin et en fin de moi plutôt du lidol. Imaginons que tu code ton problème comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class chien() {
        private Croquettes bouffe;
        public chien() {
            //Bien sur, on imagine que les deux éléments implémentent l'interface Croquettes
            if debutMois {
                bouffe = new RoyalKanin();
            }
            else {
                bouffe = new BouffeLidol();
            }
        }
    }
    Qu'est ce qu'il se passe si tu veux donner du frolik ou si lidol fait faillite ? Tu dois retoucher ton composant ! Ton chien dépend de l'implémentation des croquettes. Il y a un gros couplage.

    La solution est que ta classe chien n'utlise que l'interface. Le choix de l'implémentation étant donnée au composant appelant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class Chien {
        private Croquettes bouffe;
        public Chien() {}
        public setCroquettes(Croquettes croquettes) {
            bouffe = croquettes;
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class CBolo {
        private Chien medor;
        public CBolo() {
            medor = new Chien();
        }
        public void nourritChienDebutMois() {
            medor.setCroquettes(new RoyalKanin());
        }
        public void nourritChienFinMois() {
            medor.setCroquettes(new BouffeLidol());
        }
    }
    Ici, il n'y a plus de couplage entre le Chien et les Croquettes. C'est CBollo qui décide comment nourrir son chien. Dans ce cas là, on fait de l'injection de dépendance dans le Chien (ce n'est pas sale et parfaitement légal).

    Bon, c'est un exemple vite fait ^^.

    Dans la vrai vie, la question du couplage se pose bcp en J2EE quand tu as des EJB (2) ou des trucs du genre qui dépendent d'un conteneur. A cause de ça, c'est galère quand tu veux faire des tests unitaire parce que ton code ne peut pas fonctionner en dehors du conteneur.

    Un autre cas de couplage (qui me fout en rogne mais c'est moins grave) c'est de mettre des Loggers log4j dans les classes directement. Après tu lances des tests unitaires et il te râle dessus parce que tu n'as pas défini d'appender pour ton Logger.

    J'espère que je ne t'ai pas raconté n'importe quoi.

Discussions similaires

  1. Comment avoir l'octet de poids fort et faible d'un nombre
    Par azerty25 dans le forum Général Python
    Réponses: 7
    Dernier message: 02/12/2015, 16h41
  2. [MCD]CIF et DF forte et faible
    Par Abstract_cl dans le forum Schéma
    Réponses: 4
    Dernier message: 28/12/2007, 16h25
  3. Points forts-Points faibles
    Par sleigh dans le forum BIRT
    Réponses: 8
    Dernier message: 19/10/2007, 14h41
  4. CORBA & couplage fort
    Par Bba_M dans le forum CORBA
    Réponses: 4
    Dernier message: 05/03/2007, 12h18
  5. couplage fort?
    Par Baleine des sables dans le forum Windows
    Réponses: 6
    Dernier message: 19/05/2006, 09h10

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