Bonsoir à tous.
Je démarre actuellement un nouveau projet et en même temps j'apprends les design pattern avec le livre de Craig Larman: UML2 et le Design Pattern.
Etant encore novice dans le domaine, j'aimerais votre avis sur un cas simple pour être sûr de m'orienter dans la bonne direction.
Voilà le topo: je suis sur un projet web développé en PHP et pour l'instant je gère un cas basique: l'ajout d'un objet du domaine dans la base de données.
J'ai pour celà défini 3 couches:
- La couche IHM qui est donc l'interface utilisateur
- La couche domaine qui reprend les concepts de mon application
- La couche service qui regroupe des services non spécifiques à cette appli
Les "classes" logicielles impliquées sont les suivantes:
- FormulaireAjout (le formulaire en HTML)
- ObjetDomaine (le type de l'objet que j'ajoute)
- ObjetManager (le contrôleur qui reçoit le message de l'FormulaireAjout)
- DBManager (le singleton qui interface avec la Base de Données)
Ma question est simple: à qui affecter la responsabilité d'appeler DBManager?
J'ai choisit ObjetManager, les interactions sont donc les suivantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ajouteObjet(nom, description) enregistreObjet(nom, description) FormulaireAjout ------------------------------> ObjetManager -----------------------> DBManager
Ma justification est que cela favorise le faible couplage. Mais dans la mesure où je ne n'instancie jamais ici d'objet de la classe ObjetDomaine, ça me semble assez bizarre...
Alors l'alternative serait de confier à ObjetDomaine la responsabilité de "s'enregistrer" mais là je me dis que si chaque classe du domaine doit avoir cette responsabilité, le couplage de mon application va en prendre un coup.
Du coup, en tant que débutant, je demande humblement votre avis sur la chose
Merci d'avance de votre aide
PS: désolé pour le "diagramme" en mode texte mais je n'utilise aucun outil uml pour le moment, je fais tout en esquisse
Partager