bonsoir à tout le monde je voudrais savoir si chaque classe doit avoir un seul rôle dans une bonne conception
CAD chaque classe à une seule tâche ou pas
merci
bonsoir à tout le monde je voudrais savoir si chaque classe doit avoir un seul rôle dans une bonne conception
CAD chaque classe à une seule tâche ou pas
merci
Pour moi, la question ne se pose pas en POO.
Si tu te poses cette question, c'est que tu raisonnes en termes fonctionnels. Que tu cherches à faire un objet "Gérer les contrats", donc un module fonctionnel et non pas un objet au sens POO du terme.
Pour moi, on définit avant tout des objets qui représent des entités physiques précises et concrêtes. On définit les opérations unitaires qui peuvent s'effectuer sur chaque entité. De cette façon, ton objet est autonome, indépendant d'un contexte précis et donc parfaitement réutilisable.
Ensuite, tu réfléchis un peu pour abstraire, organiser les choses, faire des classes abstraites...
Enfin tu connecte tes objets entre eux et les fonctionnalités (les modules fonctionnels) découlent de l'interaction des objets entre-eux...
Dès lors, un objet peut très bien contribuer à plusieurs tâches, mais chaque tâche est un résultat et pas le "rôle" de l'objet.
Il ne faut pas oublier que la grande force de l'objet, c'est sa faculté à être réutilisé dans un autre contexte, pour faire autre chose.
Si ta classe n'est pas réutilisable, tu passes à côté de l'intérêt de l'objet, donc à mon sens c'est une erreur de conception.
Si ta classe est parfaitement réutilisable, tu connais son usage à un instant t, mais plus tard, elle pourra très bien jouer un autre rôle.
Pour les rôles cela me paraît difficile dans la mesure tu peux avoir avoir un class qui soit associé à plusieurs autres donc qui peut avoir un rôle différent dans chaque cas.
Pour la tâche en principe une class devrait se concentrer sur sa spécialité donc en avoir plusieurs paraît un peu foireux...
Partager