|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éclairé
![]() |
Salut à tous, je me pose une question concernant les bonnes pratiques / qualités de code / performance. J'ai une classe principale qui va instancier (automatiquement) des classes modules en passant à leur constructeur sa propre classe $this....
Une fois instancier ces objets sont gardés dans un array de ma classe maitre. Je trouve ça plutôt pratique car j'aimerais utilisé certaines méthodes (add_post_meta, add_post_meta, save_post_meta, etc....) de ma classe maitre (Social) dans mes classes modules (Social_Facebook par exemples) . Ci-dessous le code (raccourcis) des classes en question. Code :
Je suis contrarié dans mon idée car l'idéal serait surement d'avoir une classe Social_Data par exemple qui me serve à gérer tout ajout/supression etc.. De plus je passe à mes classes modules une référence à la classe maitre et cette dernière contient déjà les instance de mes objets modules.... En faite je me demande si ce n'est pas un peu bourrin comme méthode... Vous avez déjà expérimenté ? Des avis techniques ? |
||
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() |
Bonjour,
Tu devrais privilégier l'approche lazy loading : ne charger les modules que lorsque tu en as besoin et pas avant. Il se peut très bien que dans un traitement tu n'ais pas besoin du tout d'un module, il serait dommage d'y consacrer des ressources pour le charger inutilement. Passer explicitement par référence des instance est totalement inutile les instances passent déjà par défaut par référence. A vouloir tout connecter, c'est le meilleur moyen pour t'y perdre. Sans compter toutes les redondances... Et puis avoir accès à tout partout dans ton code va t'amener à enfreindre un paquet de règles et de bonnes pratiques de la POO. Tu vas te retrouver avec des (trains) de chaînes à n'en plus finir : $this->_parent->modules()->social()->twitter()->database()->getInstance()->create();Bref ingérable, crois-moi. Reprends ton design et penses abstraction, encapsulation, réutilisabilité...
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#3 | ||
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Pourquoi ne pas simplement dérivé d'une classe sociale tes classes spécialisée avec éventuellement si nécessaire avoir une factory d'objet social ?
Code :
|
||
|
00
|
|
|
#4 | ||
|
Membre éclairé
![]() |
Citation:
Comme tu le précise c'est la redondance qui ne me plaisait pas dans ce que j'ai fait, un module qui contient une ref a l'objet parent qui contient lui meme l'objet module.... pas très clean, mais quelques avis extérieurs sont toujours bons Citation:
|
||
|
00
|
Copyright © 2000-2012 - www.developpez.com