Il Single Responsibility Principle (SRP) è il concetto che ogni singolo oggetto nella programmazione orientata agli oggetti (OOP) dovrebbe essere creato per una funzione specifica. SRP fa parte dei principi di programmazione SOLID proposti da Robert Martin. Tradizionalmente, il codice in linea con SRP ha un'unica funzione per classe.
SRP ha lo scopo di aiutare a rendere il codice modulare con meno difficoltà derivanti dalle interdipendenze. Rendere il codice più modulare e impacchettato in funzioni aiuta a renderlo più riutilizzabile e aiuta a evitare sprechi di tempo a ricodificare ciò che è già stato fatto. L'adozione di SRP dovrebbe aiutare durante l'aggiornamento del codice poiché ci sono meno punti di preoccupazione quando si rileva la necessità di aggiornare una determinata funzione.
I critici di SRP sottolineano che la pratica spesso si traduce in numerosi frammenti di codice legati insieme a troppi microservizi. Tuttavia, è stato notato che Martin ha anche raccomandato che le funzioni correlate non debbano essere strettamente isolate per essere in linea con SRP, dicendo: "Raccogli le cose che cambiano per le stesse ragioni. Separare le cose che cambiano per motivi diversi ".