|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Bonjour à tous,
je me confronte à un problème de conception , je ne sais pas vraiment comment m'organiser pour arriver à ce que je souhaite. Je recode des classes pour la gestion d'image pour que je puisse facilement switcher de GD à un autre "driver". J'ai donc une première classe Image_Image générique qui via une factory va appeller les bonne classe en fonction du driver choisi : (les classes ont été simplifiée pour aller à l'essentiel) Code :
Code :
Code :
Code :
Et c'est là que je coince, je ne sais pas trop comment m'organiser. J'avais penser dans un premier temps à simplement passer aux classes la ressource image , faire le traitement, puis renvoyer cette ressource à la classe Image_Resources_* mais je ne sais pas si c'est un raisonnement correct. Toute proposition est la bienvenue |
||||||||
|
00
|
|
|
#2 | ||||||||
|
Expert Confirmé
![]() ![]() |
Salut grunk,
Je pense que tu peux faire plus simple, tu devrais profiter de l'interface Image_Interfaces_Resource directement dans ta classe Image_Image. J'ai modifié l'intitulé des éléments pour mieux les décrire : En 1er tu définit ce que tu veux faire avec une image : Code :
Code :
Code :
Code :
|
||||||||
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Salut et merci de ta réponse.
Ce qui me dérange avec ta solution c'est les classes Image_Driver_* ne peuvent être indépendante. Par exemple la classe GD et ImageMagik implémente les méthode standard défini dans l'interface , mais si dans ma classe GD j'ai envie de rajouter une méthode qui ne sera pas dans Imagemagik ca va être problématique. |
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() |
C'est clair que cela te force à unifier toutes les implémentations de chaque driver d'image. Si tu veux malgré tout conserver les spécificités de chaque driver, il n'y a pas 36 solutions, la tienne est correcte, tu peux juste je pense oublier la classe Image_Abstract_Factory que tu peux remonter dans le constructeur de Image_Image
|
|
00
|
|
|
#5 | ||||
![]() ![]() Gérard ErnaelstenDBA & Dev PHP Inscription : juin 2005 Messages : 3 174 ![]() |
Tu peux aussi passer par les méthodes magiques, ce qui te permettras de définir ce que tu veux
Code :
Code :
__________________
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde Mes Articles/Critiques : Merise - Guide pratique PHPExcel PostgreSQL : Administration et exploitation d'une base de données PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle |
||||
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() ![]() |
Les méthodes magiques c'est pratique à petite dose je pense, parce que pour les grandes bibliothèques ne pas bénéficier de l'auto-completion devient vite un vrai bordel. Enfin je parle pour moi car à force d'auto-completer (presque tout), je me fénéantise un peu
|
|
00
|
Copyright © 2000-2012 - www.developpez.com