Bonjour,
j'ai souvent le meme probleme sur les projets web, je n'arrive pas a concevoir mes classes de la bonne manière.C'est à dire :
- maintenable (pas de copie de code)
- bien séparé en couche (la couche metier ne doit pas se soucier du travail qu'a fait la couche donnée, ni meme l'appeler)
- performant : ne pas charger des donnée qu'on utilisera pas.
Imaginons une interface ou j'ai la liste de mes clients avec leur adresse, je vais avoir donc :
Maintenant j'ai une interface ou j'ai la liste des client avec les livres qu'ils ont acheté, qu'est ce que je fait ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Client --Id Client --Nom --Adresse ----Ville ----CP ----Rue
1/ Je crée une nouvelle classe :
Avantage : je ne charge pas l'adresse pour rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ClientPourListeAchat --Id Client --Nom --Livres[] ----ID ----Nom
Inconvénients : Mes classes sont conçues selon mon UI, y'a de la redondance dans le code, la maintenabilité est pourrie.
2/ Je rajoute Livres[] a la première classe
Avantage : J'ai tout dans une classe, c'est plus maintenable
Inconvénients : je charge l'adresse pour rien, ou si je la charge pas, je fait sot du lazy loading et c'est nul, soit je fait en sorte de ne l'utiliser que quand je sais que je suis passé par la bonne méthode de ma DAL, mais c'est nul aussi
3/ Je fait un système d'héritage :
Avantage : maintenable a mort, tout est bien séparé, je charge pas des données pour rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ClientBase --ID --Nom ClientAvecLivre : ClientBase --Livres[] ClientAvecAdresse : ClientBase --Adresse
Inconvénient : Qu'est ce que je fait si je veux un objet client avec les livre ET l'adresse ? Etant donné que l'héritage multiple est pas possible dans la majorité des langage orienté objet (selon mon expérience jusque la).
4/ ?? j'espère vraiment que y'a une solution que j'ai pas vu.
PS : désolé pour le titre du topic, c'est pas facile ^^
Partager