Bonjour à tous,
Je me pose une question de bonne pratique concernant la construction d'un modèle de classe impliquant de la composition et de l'héritage.
-Présentation des classes :
>>Module : Définition d'un module de formation
>>Intervention: Un module est composé de plusieurs interventions. Chaque intervention n'est rattachée qu'à un seul module (--> composition).
>>InterventionSalle : Intervention réalisée en salle qui hérite de la classe intervention
>>InterventionEntreprise : Intervention réalisée en entreprise, qui hérite d'Intervention
>>Session : Définition d'une session de formation = réalisation d'une unique intervention d'un module donné à une date donnée.
-Ma proposition de modèle :
-Ma 1ère question: Qu'est ce qui tient la route ou est le plus propre ?
A priori, je dirais que seule ma proposition 1 est valable.
la proposition 2 ne me semble pas vraiment clean du point de vue UML, mais s'explique dans l'implémentation du code : je traduis l'héritage en BDD par une single_table regroupant toutes les interventions (via Doctrine 2)
Après je me pose la question de l'implémentation de la contrainte {or} en php. Est-ce que je dois faire un contrôle dans le setter pour tester si mon instance de "Session" est déjà reliée à une instance d'"Intervention" en salle ou en entreprise? Ou faut-il faire autrement ?
Merci d'avance
Adrien
Partager