Principiul responsabilității unice

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În programarea orientată pe obiecte , principiul responsabilității unice ( principiul responsabilității unice, abreviat cu SRP) prevede că fiecare element al unui program ( clasă , metodă , variabilă) trebuie să aibă o singură responsabilitate și că această responsabilitate trebuie să fie în întregime încapsulată de elementul „ în sine. Toate serviciile oferite de element ar trebui să fie strict aliniate cu această responsabilitate.

Termenul a fost introdus de Robert C. Martin într-un articol cu ​​același nume ca parte a „Principiilor sale de proiectare orientată pe obiecte”, cunoscut și acum ca principii SOLID , și a fost preluat ulterior de însuși Martin în cartea populară Agile Software Development , Principii, modele și practică . La rândul său, Martin a fost inspirat de principiul coeziunii descris de Tom DeMarco în cartea Structured Analysis and Systems Specification .

Martin definește o răspundere ca fiind un motiv pentru schimbare și concluzionează că o clasă sau un modul ar trebui să aibă unul și un singur motiv pentru schimbare (un singur motiv pentru schimbare).

Principiul responsabilității unice este utilizat în metodologiile de proiectare, cum ar fi proiectarea bazată pe responsabilitate .

Exemplu

De exemplu, luați în considerare un formular care completează și tipărește un raport . Acest formular se poate modifica din două motive. În primul rând, conținutul raportului se poate modifica. În al doilea rând, formatul raportului se poate modifica. Aceste două lucruri se schimbă din motive foarte diferite: unul substanțial și unul estetic.

Principiul responsabilității unice spune că aceste două aspecte ale problemei sunt de fapt două responsabilități distincte și, prin urmare, ar trebui descrise în clase sau module separate. Ar fi o concepție proastă să cuplăm două lucruri care se schimbă, din motive diferite în momente diferite.

Dacă există o modificare în procesul de compilare a raportului, există o șansă mai mare ca codul pentru tipărire să eșueze dacă se află în aceeași clasă.

Elemente conexe

  • SOLID - „S” al „SOLID” reprezintă responsabilitatea unică