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

Langage Java Discussion :

Question sur la cohesion et couplage


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 125
    Par défaut Question sur la cohesion et couplage
    bonjour,

    Je suis en train de m'entrainer sur la certif java 1.5, et j'ai trouvé cette question sur la cohesion et couplage :
    il faut dire pour chaque classe le design qui lui correpond parmis la liste suivante :
    Tight Coupling - High Cohesion - Low Cohesion - Loose Coupling

    1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Class Truck{
    String modelName;
    String[] engineDetails;
    }
    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Class Truck{
    String modelName;
    String[] passengerList;
    String[] cargoList;
    }
    3-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Class Truck{
    Driver driver;
    Price price;
    void printDriverDetails(){}
    void printPrice(){}
    }
    J'ai répondu
    1- Loose Coupling
    2- Loose Coupling
    3- Low Cohesion

    Mais je ne suis pas sûr, je ne vois pas de différence de design entre les classes 1 et 2

    Merci d'avance pour vos suggestions

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Par défaut
    La cohesion est le fait qu'une classe réponde à UNE problématique et une seule.
    Le couplage représente le lien plus ou moins fort d'une classe avec les autres classes (toute modification sur une classe aura une incidence sur une autre).

    Donc je proposerais :
    1- High Cohesion (la classe Truck - Camion- ne traite que d'aspects relatifs aux camions)
    2- Low Cohesion (la classe Truck - Camion- traite aussi d'aspects relatifs à une liste de passagers)
    3- Low Cohesion et Tight coupling (Truck gère le Driver et les classes Truck, Driver et Price sont liés les unes aux autres)

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 125
    Par défaut
    Merci pour ta réponse

    j'ai trouvé une définition de la cohesion un peu différente de la tienne :
    "The extent to which methods in a class are related ".
    je ne sais pas si on peut dire que la cohesion est la faculté à gérer des méthodes d'une classe répondant à une seule problématique..

    en tout cas, je comprends mieux pourquoi les classes 1 et 2 répondent à des problèmes de cohésion et non de couplage comme j'avais mis

  4. #4
    Membre émérite
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Par défaut
    Citation Envoyé par reneguenon Voir le message
    Merci pour ta réponse

    j'ai trouvé une définition de la cohesion un peu différente de la tienne :
    "The extent to which methods in a class are related ".
    je ne sais pas si on peut dire que la cohesion est la faculté à gérer des méthodes d'une classe répondant à une seule problématique..

    en tout cas, je comprends mieux pourquoi les classes 1 et 2 répondent à des problèmes de cohésion et non de couplage comme j'avais mis

    La cohésion n'est pas tout à fait le fait de répondre à une seule problèmatique mais le fait qu'une classe ne réponde qu'aux problèmatiques pour laquelle elle à été créée.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Par défaut
    La cohésion n'est pas tout à fait le fait de répondre à une seule problèmatique mais le fait qu'une classe ne réponde qu'aux problèmatiques pour laquelle elle à été créée.
    Oui exact, c'est ce que je voulais dire.

  6. #6
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Citation Envoyé par divxdede Voir le message
    La cohésion n'est pas tout à fait le fait de répondre à une seule problèmatique mais le fait qu'une classe ne réponde qu'aux problèmatiques pour laquelle elle à été créée.
    Je ne suis pas tout à fait d'accord, une classe répond toujours aux problématiques pour laquelle elle à été créée ... elle est codée pour, même si elle est mal conçue. Je suis beaucoup plus proche de la définition de slevy, et pour moi la cohésion est le fait de concevoir des petites classes répondant à une problématique simple. La complexité provient de l'assemblage des objets. C'est là qu'intervient le couplage, quand un objet interagit avec plusieurs autres objets.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut La version officielle
    Salut tout le monde.

    Pour mon 1er post, je vais vous donner la version de la cohesion décrite dans le livre de préparation à la certification SCJP pour java 6 :

    • Cohesion refers to the degree in wich a class has a single, well defined role or responsability.
    • High cohesion is the desirable state of a class whose members support a single, well focused role or responsability.
    • Low cohesion is the undesirable state of a class whose members support multiple, unfocused roles or responsabilities.
    Bonne chance à vous.

Discussions similaires

  1. question sur couplage serveurs ldap,web,dns
    Par tenderstoune dans le forum Réseau
    Réponses: 2
    Dernier message: 29/02/2008, 15h07
  2. Réponses: 5
    Dernier message: 22/09/2006, 03h13
  3. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  4. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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