POO - Jeu de mot : Dit-on Créer un Objet ou Instancier une classe ?

Programmation Avancée

Modérateur : douinj

chauv_gi
Messages : 6
Inscription : 10 oct. 2019 16:24

POO - Jeu de mot : Dit-on Créer un Objet ou Instancier une classe ?

Message par chauv_gi » 13 déc. 2019 22:38

Bonsoir,

Nous venons de participer à l'ED sur le Décorateur et son illustration au moyen d'une Pizza qui devient (c'est ce que j'ai cru comprendre) la classe mère de toutes sortes d'ingrédients : des tomates, des champignons, etc , que des bonnes choses. Les 'ingrédients' héritent de la classe mère.

Est-ce que je n'ai pas tout compris mais comment une Pizza devient-elle son ingrédient ?

Ce qui m'a interpellé, c'était le nombre important de nouvelle classe, une classe par ingrédient. Aussi ai-je pensé qu'il serait plus simple de faire une classe Ingrédient en y ajoutant un attribut pour la 'Nature' de cet ingrédient ce qui permettrait de créer (instancier) un Objet 'Sauce Tomate' à partir de cette classe 'Ingrédient'.

Un 'Ingrédient' (la classe) peut-il être considéré comme un objet ? ou alors un 'Ingrédient' devrait-il être considérée comme une classe abstraite ?

Dans la vraie vie et au sens littéral des mots, un objet 'Moule' n'est pas un objet 'Oignon', personne ne le niera.

Mais au sens POO, peuvent-ils sortir du même moule, celui de la classe de l'objet (ici Ingrédient) et est-ce sémantiquement correct ?

douinj
Messages : 159
Inscription : 18 mars 2009 15:46

Re: POO - Jeu de mot : Dit-on Créer un Objet ou Instancier une classe ?

Message par douinj » 15 déc. 2019 19:51

Bonjour
Est-ce que je n'ai pas tout compris mais comment une Pizza devient-elle son ingrédient ?
Je n'ai pas bien compris votre question, mais l'idée est de décorer une instance de classe existante par de nouvelles fonctionnalités sans recourir à l'héritage,

Ce qui m'a interpellé, c'était le nombre important de nouvelle classe, une classe par ingrédient. Aussi ai-je pensé qu'il serait plus simple de faire une classe Ingrédient en y ajoutant un attribut pour la 'Nature' de cet ingrédient ce qui permettrait de créer (instancier) un Objet 'Sauce Tomate' à partir de cette classe 'Ingrédient'.
c'est assez bien décrit dans le chapitre 3 http://jfod.cnam.fr/NFP121/Chapter03_Head_First.pdf pré requis à lire avant de commencer le tp8 qui sera en ligne demain

à suivre, donc

chauv_gi
Messages : 6
Inscription : 10 oct. 2019 16:24

Re: POO - Jeu de mot : Dit-on Créer un Objet ou Instancier une classe ?

Message par chauv_gi » 15 déc. 2019 20:38

Il me semble que sur le diagramme blueJ/UML oignon hérite de pizza (oignon est la classe et aussi l'objet). Il y a une flèche dont le bout est un triangle blanc entre les deux classes.
Et à la page trois de "Tête la première", on voit bien que les "Deca" et autre "Expresso" spécialisent la classe mère "Boisson".

Or dans notre cours, nous avons oignon qui spécialise pizza, le nom de la classe 'Oignon' a-t-il été choisi volontairement ?

douinj
Messages : 159
Inscription : 18 mars 2009 15:46

Re: POO - Jeu de mot : Dit-on Créer un Objet ou Instancier une classe ?

Message par douinj » 16 déc. 2019 12:32

Bonjour,
Or dans notre cours, nous avons oignon qui spécialise pizza, le nom de la classe 'Oignon' a-t-il été choisi volontairement ?
Normalement Oignon dévrait hériter de la classe PizzaDecorator et une fois décorée la pizza avec oignons doit se comporter comme une pizza,

je vérifie cet a-m si je n'ai pas moi aussi confondu Oignon et Pizza

je vous tiens informé.e.s

Répondre