web-dev-qa-db-fra.com

Le SRP (principe de responsabilité unique) est-il objectif?

Considérez deux concepteurs d'interface utilisateur qui souhaitent concevoir des conceptions "utilisateur attrayant". "Attraction utilisateur" est un concept qui n'est pas objectif et ne réside que dans l'esprit des concepteurs. Ainsi, concepteur A pourrait par exemple ramasser la couleur rouge, tandis que le designer B choisit le bleu. Concepteur A Créer une mise en page tout à fait différente du designer B, et ainsi de suite.

J'ai lu sur SRP (principe de responsabilité unique) et ce que j'ai compris était une analyse subjective ou une décomposition des responsabilités pouvant varier d'un concepteur OO à un autre OO concepteur. Ai-je raison? En d'autres termes, est-il possible d'avoir deux excellents analyseurs orientés d'objets et designer qui proposent deux modèles différents pour un système basé sur le Principal SRP?

17
Saeed Neamati

Une bonne question et une question que j'ai souvent écrasée.

Je dirais pas objectif, non. Définitivement subjectif. La façon dont vous approchez-vous des problèmes d'abattage dépend de votre philosophie vers ce type de problème. La science nous montre qu'il peut y avoir de nombreuses façons différentes de résoudre le même problème efficacement. La science nous montre également que les personnes continentales peuvent proposer les mêmes solutions de manière indépendante, de sorte que certaines solutions sont plus évidentes que d'autres. Dans tous les cas, à juger des solutions en termes de "meilleur" dépend de vos critères.

Vraiment, ce que l'on pourrait voir que deux parties du même ensemble, une autre pourrait voir deux concepts totalement séparés. On voit tout cela tout le temps lorsque vous regardez comment les maintenants de différentes bibliothèques de code abordent le même problème. Et pourtant, les deux solutions fonctionnent bien.

(PS. Édité cette réponse alors que la dernière question de l'OP pose le contraire du titre de la question.)

12
Engineer

Le principe lui-même est objectif, mais il existe tant de façons différentes de mettre en œuvre quelque chose qui suit le principe, que deux développeurs indépendants apparaissent presque toujours avec des conceptions de système plutôt différentes pour la même application.

Il est même probable que le même développeur fait le même design deux fois, viendra toujours avec deux solutions qui diffèrent au moins partiellement.

Pour un principe de provoquer des conceptions de système pour toujours ressembler à la même chose, il faudrait couvrir tous les aspects des décisions de conception. Le directeur de responsabilité unique ne couvre qu'une petite partie des décisions de conception impliquées dans la fabrication de toute conception du système.

5
Guffa