Qu'est-ce qu'un objet composite?
Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

Qu'est-ce qu'un objet composite?



  1. #1
    Bladejo95

    Qu'est-ce qu'un objet composite?


    ------

    Bonjour,
    j'aimerai comprendre en détail la notion d'objet composé d'objet, son utilité
    merci

    -----

  2. #2
    Zartan

    Re : Qu'est-ce qu'un objet composite?

    Bonjour,

    Quand différents objets héritent d'un même parent et ont des méthodes partagées, ça consiste à créer un objet supplémentaire qui hérite du même parent et donc a les mêmes méthodes, mais qui est un ensemble d'objets de la famille.

    Par exemple si on peut déplacer un cercle et un carré, on peut créer un ensemble (cercle + carré) que l'on pourra déplacer.

    Je ne suis pas trop fan de la design-pattern-mania mais celui là est intéressant.

    http://fr.wikipedia.org/wiki/Objet_composite

  3. #3
    Zartan

    Re : Qu'est-ce qu'un objet composite?

    Quand je parle d'objets je voulais dire classe d'objets bien entendu, je me suis laissé entraîné par la définition incorrecte de wikipédia.

  4. #4
    Bladejo95

    Re : Qu'est-ce qu'un objet composite?

    merci pour tes réponses ,au fete je pense etre imprécis dans ma question, c'est concernant le langage c++ sur le site du zéro (je sais pourquoi je ne m'adresse pas directement à eux?),il ya une partie "associer des classes entre elles" que je ne comprends pas , on parle bien d'objets composé d'objets (objet composite)?, j'avoue que je suis perdu

  5. A voir en vidéo sur Futura
  6. #5
    Zartan

    Re : Qu'est-ce qu'un objet composite?

    Et oui c'est le problème quand on mélange les termes objet et classe après on ne comprend plus rien ! Les anglais eux parlent de composite pattern et pas d'objets composites.

    Un objet c'est ce qu'on obtient quand on instancie une classe. Par exemple j'ai une classe Rond et des objets rond1, rond2, etc....

    Pour en revenir à nos moutons, on a des classes d'objets qui ont une ou plusieurs propriétés communes et donc on crée une nouvelle classe qui aura également cette (ou ces) propriété(s) et en même temps servira de conteneur. Un objet de la nouvelle classe contiendra plusieurs objets des anciennes, j'ai déjà donné un exemple plus haut et la page wikipedia en est bourrée.

  7. #6
    Jack
    Modérateur

    Re : Qu'est-ce qu'un objet composite?

    Zartan, j'ai l'impression que tu parles d'héritage alors que Bladelo95 parle de composition. Héritage et composition sont deux notions différentes.

    Une relation de composition entre 2 classes veux dire qu'un objet d'une des 2 classes pourra être composé d'objets de l'autre classe. Par exemple, si on veut définir une fenêtre avec des boutons, des textBox, etc., il existera une relation de composition entre la classe du conteneur (la fenêtre) et la classe de chaque type d'objet contenu.

    A+

  8. #7
    Zartan

    Re : Qu'est-ce qu'un objet composite?

    Oui, l'héritage n'est qu'un des moyens d'y arriver, on peut passer par les interfaces également (en restant simple parce que les interfaces sont une forme d'héritage).

  9. #8
    Jack
    Modérateur

    Re : Qu'est-ce qu'un objet composite?

    C'est quoi une interface en C++?

    A+

  10. #9
    Zartan

    Re : Qu'est-ce qu'un objet composite?

    En C++ le mot clef interface n'existe pas alors on utilise l'héritage multiple à la place.

  11. #10
    kwariz

    Re : Qu'est-ce qu'un objet composite?

    Bonjour,

    Jack a raison, l'héritage correspond à la relation «est un» alors qu'une composition correspond à la relation «contient un», pour reprendre l'exemple de Jack, une boîte de dialogue est une fenêtre qui contient un label et deux boutons. On peut donc imaginer que la classe Dialogue sera une sous classe de Fenetre, et qu'elle contient des attributs de type Bouton et Label (en fait dans ce cas il s'agit d'aggregation qui est une forme de composition).

  12. #11
    Zartan

    Re : Qu'est-ce qu'un objet composite?

    Comment vous faites sans utiliser l'héritage ? J'aimerai un exemple.

  13. #12
    kwariz

    Re : Qu'est-ce qu'un objet composite?

    Un exemple ? Bon je ne suis pas c++ fluent

    Code:
    class A { 
      ...
    }
    
    class B {
      A a
    
      ...
    }

  14. #13
    Zartan

    Re : Qu'est-ce qu'un objet composite?

    Citation Envoyé par kwariz Voir le message
    Un exemple ? Bon je ne suis pas c++ fluent

    Code:
    class A { 
      ...
    }
    
    class B {
      A a
    
      ...
    }
    C'est un composite pattern ça ?

  15. #14
    kwariz

    Re : Qu'est-ce qu'un objet composite?

    Non c'est un «objet composé d'objet(s)» comme demandé par le po ...

  16. #15
    Zartan

    Re : Qu'est-ce qu'un objet composite?

    Ah je vois, oui c'est composite mais le patron composite c'est un truc comme ça :


    Code:
    class Rond
    {
     public:
        void deplace(int dx, int dy) ;
    }
    
    class Carre
    {
    public:
    void deplace(int dx, int dy);
    }
    
    class CompositeRondPlusCarre
    {
    private:
     Rond rond:
     Carre carre;
      public:
     void deplace(int dx, int dy) 
      {
         rond.deplace(dx, dy);
         carre.deplace(dx, dy); 
      }
    }
    Dernière modification par Zartan ; 28/09/2012 à 12h07.

  17. #16
    kwariz

    Re : Qu'est-ce qu'un objet composite?

    C'est une façon d'implémenter le pattern, mais si tu regardes le diagramme du pattern Composite c'est un peu plus dynamique ; en gros on peut ajouter dynamiquement des objets dans un groupe d'objets puis les manipuler individuellement ou comme un groupe.
    La composition est une notion «ancienne» que l'on retrouve dans la plupart des langages (C et dérivés, SQL, Pascal, ...) et des méthodes de conception, ce n'est qu'une relation d'appartenance.

  18. #17
    Zartan

    Re : Qu'est-ce qu'un objet composite?

    Citation Envoyé par kwariz Voir le message
    C'est une façon d'implémenter le pattern, mais si tu regardes le diagramme du pattern Composite c'est un peu plus dynamique
    Oui j'ai vu qu'il y avait une liste d'objets, j'ai simplifié en ne mettant qu'un rond et un carré.

    La composition est une notion «ancienne»
    La nouveauté que j'ai remarqué se situe au niveau de l'utilisation des mêmes méthodes entre l'objet composite et les objets "atomiques" (ce qui induit une relation d'héritage que j'ai d'ailleurs oublié d'indiquer dans mon exemple).

    Si on s'en affranchit c'est en effet quelque chose que l'on fait depuis que les objets existent.

  19. #18
    Jack
    Modérateur

    Re : Qu'est-ce qu'un objet composite?

    en fait dans ce cas il s'agit d'aggregation qui est une forme de composition
    Pas sûr. Au sens d'UML, une composition est une agrégation forte. Dans une composition, la diparition du conteneur entraine la disparition des objets contenus, ce qui est le cas avec une fenêtre.

    A+

  20. #19
    kwariz

    Re : Qu'est-ce qu'un objet composite?

    Tout à fait exact ! je me suis planté dans le sens

Discussions similaires

  1. Qu'est qu'un point, qu'est-ce qu'un trait ?
    Par invite1ab59cc3 dans le forum Mathématiques du supérieur
    Réponses: 16
    Dernier message: 05/11/2012, 20h07
  2. Qu'est ce qu'un os de membrane? Qu'est qu'un os dermique?
    Par Bermaki.as dans le forum Santé et médecine générale
    Réponses: 2
    Dernier message: 04/10/2010, 21h14
  3. Qu'est-ce-qu'un objet archéologique ?
    Par Trajean dans le forum Archéologie
    Réponses: 23
    Dernier message: 17/03/2008, 20h47
  4. Qu'est-ce qui fait qu'un objet bleu...est bleu?
    Par inviteb2a23d05 dans le forum Physique
    Réponses: 16
    Dernier message: 06/02/2008, 18h57