Une attaque en règle contre un dogme du développement logiciel
Le « Single Responsibility Principle » (SRP), pierre angulaire des principes de conception SOLID, est « faux » : telle est l’affirmation contenue dans une prépublication mise en ligne fin mai 2026 sur la plateforme Zenodo. Son auteur, le chercheur indépendant Yannick Loth, y soutient que la formulation classique du principe — « une classe ou un module ne doit avoir qu’une seule raison de changer » — ne résiste pas à l’examen logique.
Le document, intitulé Why SRP Is Wrong: The Cardinality Error in the Single Responsibility Principle (Pourquoi le SRP est faux : l’erreur de cardinalité dans le principe de responsabilité unique), ne se contente pas de nuancer ou de préciser la règle. Il la déclare « non pas imprécise, non pas dépendante du contexte, non pas simplement mal comprise : fausse ».
Le motif d’adaptateur comme contre-exemple
Pour étayer sa thèse, Yannick Loth s’appuie sur un cas concret bien connu des architectes logiciels : le motif d’adaptateur (adapter pattern). Ce dernier a pour mission de faire communiquer deux domaines dotés d’interfaces incompatibles. Par nature, écrit le chercheur, un adaptateur possède « visiblement deux raisons de changer » : la première survient lorsque l’interface cible évolue, la seconde lorsque l’interface adaptée est modifiée.
Or, sous la définition donnée par Robert C. Martin lui-même pour compter les « raisons de changer », il s’agit de deux motifs distincts. L’adaptateur enfreint donc le SRP. Mais la solution préconisée par le principe — scinder l’adaptateur en sous-modules ayant chacun une seule raison de changer — détruit la fonction même de l’adaptateur, selon l’auteur.
« La médiation nécessite que la connaissance des deux domaines soit présente dans la même étape de raisonnement ; toute tentative de division obligerait à dupliquer cette connaissance, ce qui rétablirait l’assignation à plusieurs moteurs de changement », explique-t-il.
Une réfutation jugée universelle
Loth insiste sur le fait que la réfutation ne dépend pas du choix de l’adaptateur. « Tout module dont le but est de faire le lien entre des domaines indépendants est un contre-exemple équivalent », écrit-il. Et d’ajouter que la classe de ces contre-exemples n’est pas un cas marginal : « la majorité des systèmes logiciels complexes doivent s’interfacer avec des domaines externes ». Autrement dit, le SRP serait inapplicable dans la plupart des situations rencontrées en pratique.
L’article, publié sous licence Creative Commons Attribution 4.0 International, est un preprint — il n’a pas encore été soumis à une revue avec comité de lecture. Il a néanmoins déjà suscité des discussions dans la communauté technique, comme en témoignent les huit vues et cinq téléchargements enregistrés sur Zenodo au moment de sa mise en ligne.
Un principe fondateur des principes SOLID
Rappelons que le SRP, formulé par Robert C. Martin dans les années 2000, est le « S » de l’acronyme SOLID, un ensemble de cinq principes de conception orientée objet largement enseigné et appliqué dans l’industrie du logiciel. Il stipule qu’une classe ne doit avoir qu’une seule responsabilité, définie comme une unique raison de changer. L’objectif est de limiter l’impact des modifications et de faciliter la maintenance.
La remise en cause publiée par Yannick Loth s’attaque directement à cette définition, qu’elle qualifie d’« assertion universelle contredite par un contre-exemple concret ». Le sous-titre du preprint, Why a Universal Claim About Module Cardinality Fails by Counterexample, résume la démarche : démontrer que l’affirmation selon laquelle un module doit avoir une cardinalité de un pour ses raisons de changement est logiquement intenable.
Des implications pour la conception logicielle
Si la conclusion de Loth devait être confirmée par d’autres travaux et validée par la communauté scientifique, elle pourrait avoir des répercussions sur la manière dont les développeurs conçoivent les architectures logicielles. Le SRP est en effet utilisé pour guider le découpage en classes et en modules, et son application est souvent considérée comme une marque de bonne conception. Une remise en cause de sa validité universelle obligerait à repenser certains critères de qualité logicielle.
En attendant, le débat est lancé. La publication a reçu le DOI 10.5281/zenodo.20415656 et est indexée dans OpenAIRE. Elle est accessible en libre téléchargement sur la plateforme Zenodo hébergée par le CERN.