Skip to main content

Quel est le principe de responsabilité unique?

Dans la programmation et la conception informatiques, le principe de responsabilité unique est un concept qui épouse l'opinion selon laquelle toute classe d'un programme ne devrait effectuer qu'une seule fonction dans l'application plus large.Cette idée favorise en partie certains des idéaux de la programmation orientée objet, tels que l'encapsulation, car une classe entière sera axée sur la réalisation d'une seule responsabilité et sera peu dépendante des classes extérieures.En même temps, il est quelque peu contraire à certains des concepts de la programmation orientée objet précoce, car la fonction d'un seul objet est découplée à partir des données que l'objet gère, ce qui signifie que de nombreux objets en combinaison pourraient avoir besoin d'être construits pour maintenirquelques données centrales.Le principe de responsabilité unique est la base d'un type de modèle de conception connu sous le nom de conception axée sur la responsabilité.

Un exemple du principe de responsabilité unique pourrait prendre la forme d'un combiné téléphonique traditionnel.Certains principes de conception verraient le combiné comme un seul objet qui gère les deux entrées de la ligne téléphonique et la transmission de la sortie du haut-parleur.Dans un modèle de responsabilité unique, dans lequel un seul objet ne devrait avoir qu'une seule responsabilité, le combiné se composerait de plusieurs objets distincts qui effectuaient chacun une seule fonction, tel que la réception des entrées de la ligne téléphonique, ou la sortie des données uniquement viaL'écouteur.

L'un des avantages que l'utilisation du principe de responsabilité unique rend possible est un très haut niveau d'abstraction et de modularité.Dans l'exemple du combiné, soit l'entrée de la ligne téléphonique, soit la façon dont le signal est sorti à l'utilisateur peut être modifié sans affecter les classes voisines tant qu'elle adhère au même contrat pour l'interfaçage.De plus, la réutilisabilité de certains composants peut être très élevée, car chaque classe est pleinement encapsulée et repose très peu, voire pas du tout, sur les objets environnants, se concentrant plutôt sur sa seule responsabilité.

Une complication que le principe de responsabilité unique pourrait créer estUne grande quantité de classes et d'objets qui fonctionnent tous sur les mêmes données.Cela peut signifier une grande quantité de frais généraux et un processus de conception compliqué.Il peut également rendre le débogage d'un grand programme difficile, car une seule partie du programme pourrait être composée de milliers de fichiers de petite classe.

Lorsque le principe de responsabilité unique est appliqué par une conception axée sur la responsabilité, les données et les méthodes utilisées pour manipulerLes données sont séparées à des fins de conception.Bien que cela conduit à une certaine liberté, encapsulation et modularité dans la conception, il peut également générer un certain nombre de modèles et de conceptions intermédiaires qui doivent être utilisés pour faciliter un certain nombre de classes qui tentent d'interagir avec les données à la fois.D'un autre côté, si les données d'un objet et les méthodes utilisées pour les manipuler sont liées ensemble dans un seul objet multi-réponse, alors le code peut devenir plus difficile à modifier à mesure que les systèmes sont à l'échelle des systèmes, à changer ou à devenir plus complexe.