|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2007 Messages : 43 ![]() |
Bonjour à tous,
J'utilise des classes pour faire des requête SQL sur des tables. Cela fonctionne parfaitement, mais j'ai un problème lorsqu'il y a plusieurs tables Dans une appli de galerie d'image par exemple. Actuellement j'ai :
Je comprend les tutos sur l'héritage des classes (véhicule, animaux, personnages), mais je n'arrive pas à l'appliquer à ma galerie d'images. Ne devrai-je pas déclarer la classe photo comme fille de la classe album ? Ou alors faire une grosse classe qui gère les albums ET les photo ? Je suis perdu. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() |
Bonjour,
Un grand principe en POO : ne jamais faire de l'héritage fonctionnel. En clair, ne jamais dériver une classe que dans le but de récupérer ses fonctions. Conceptuellement, l'héritage va dans le sens d'une forme de spécialisation. Le lien conceptuel doit être très fort. Il faut toujours pouvoir répondre à la question est-ce que la classe dérivée est de même nature que la classe parent. Dans ton cas, il est évident qu'une photo n'est pas un album, donc dériver la classe Photo de la classe Album est une erreur conceptuelle. Un Album est une collection de Photos...
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
20
|
|
|
#3 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 991 ![]() |
Citation:
Pour ce qui est de la relation d'héritage, une classe B peut éventuellement hériter d'une classe A si et seulement si B est un(e) espèce de A. Dans ton cas on voit bien que c'est innaplicable car une image n'est pas une espèce de gallerie et vice-versa. Citation:
Une classe qui gère les albums ainsi que les photos n'est pas non plus envisageable car cette chose ne caractérise pas une entité propre (ou alors un monstre sorti de l'imaginaire de David Cronenberg). La solution ? Tu as besoin d'une gallerie bien. Une gallerie comporte des images ? Bien. On utilise alors ce qu'on appelle en OOP une aggrégation: une instance de Gallerie porte plusieurs images - en réalité, il s'agit simplement d'un tableau d'image porté par une propriété de Gallery.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#4 | |
|
Nouveau Membre du Club
![]() Aurélien LEQUOY Inscription : février 2011 Messages : 33 ![]() |
Citation:
Certains pseudo idéaliste sont malheureusement tombé dans l'excès j'ai déjà vu un pseudo framwork développer par un boite ou il fallait passer par pas moins de 5 class pour uploader un fichier, ça va s'en dire 100* plus dure à déboguer que du code procédurale aussi pourri soit-il !!!!!!!!!! pas de fonction à réutiliser = pas d'héritage |
|
|
|
01
|
|
|
#5 | |
|
Nouveau Membre du Club
![]() Inscription : novembre 2007 Messages : 43 ![]() |
Citation:
Donc je garde mes 2 classes Merci à tous pour vos réponses rapides et précise |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com