Skip to main content

Jaka jest zasada pojedynczej odpowiedzialności?

W programowaniu i projektowaniu komputerowym zasada pojedynczej odpowiedzialności to koncepcja, która opowiada się za poglądem, że każda klasa w programie powinna wykonywać tylko jedną funkcję w większej aplikacji.Pomysł ten częściowo promuje niektóre ideały programowania obiektowego, takie jak enkapsulacja, ponieważ cała klasa będzie koncentrowała się na wykonaniu jednej odpowiedzialności i będzie miała poleganie na klasach zewnętrznych.Jednocześnie jest to nieco przeciwne do niektórych koncepcji programowania wczesnego obiektu, ponieważ funkcja pojedynczego obiektu jest oddzielona od danych, które obiekt obsługuje, co oznacza, że wiele obiektów w kombinacji może być konieczne do utrzymania, aby utrzymaćniektóre centralne dane.Zasada pojedynczej odpowiedzialności jest podstawą rodzaju modelu projektowego znanego jako projekt oparty na odpowiedzialności.

Przykład zasady pojedynczej odpowiedzialności może przybierać formę tradycyjnego telefonu telefonicznego.Niektóre zasady projektowania postrzegałyby słuchawkę jako pojedynczy obiekt, który obsługuje zarówno wejście z linii telefonicznej, jak i transmisję wyjściową z głośnika.W ramach jednego modelu odpowiedzialności, w którym pojedynczy obiekt powinien mieć tylko jedną odpowiedzialność, wówczas słuchawka składałaby się z kilku oddzielnych obiektów, z których każdy wykonał jedną funkcję, takich jak odbieranie danych wejściowych z linii telefonicznej lub wyświetlanie danych przez danesłuchawkę.

Jedną z zalet, które wykorzystanie zasady pojedynczej odpowiedzialności jest możliwe, jest bardzo wysoki poziom abstrakcji i modułowości.W przykładzie słuchawki albo wejście z linii telefonicznej lub sposób, w jaki sygnał jest wyprowadzany do użytkownika, można zmienić bez wpływu na sąsiednie klasy, o ile przestrzegają one tej samej umowy w zakresie interfejsu.Ponadto możliwość ponownego użycia niektórych komponentów może być bardzo wysoka, ponieważ każda klasa jest w pełni zamknięta i niewiele opiera się, jeśli w ogóle, na otaczających obiektach, skupiając się na swojej jednej odpowiedzialności.

Komplikacja, którą może stworzyć zasadę pojedynczej odpowiedzialnościDuża liczba klas i obiektów, które wszystkie działają na tych samych danych.Może to oznaczać dużą ilość kosztów ogólnych i skomplikowany proces projektowania.Może to również utrudnić debugowanie dużego programu, ponieważ jedna część programu może składać się z tysięcy małych plików klasy.

Gdy zasada pojedynczej odpowiedzialności jest stosowana poprzez projekt oparty na odpowiedzialności, dane i metody użyte do manipulowaniaDane są oddzielone do celów projektowych.Chociaż prowadzi to do pewnej swobody, enkapsulacji i modułowości w projektowaniu, może również generować szereg pośrednich wzorów i projektów, które należy wykorzystać w celu ułatwienia wielu klas, które próbują interakcja z danymi jednocześnie.Z drugiej strony, jeśli dane obiektu i metody używane do manipulowania nim wszystkie są ze sobą związane w jednym obiekcie wielorakim, kod może stać się trudniejszy do zmodyfikowania jako skali systemów, zmieniają się lub stać się bardziej złożone.