W poniższym przykładzie zmieszano zasady pojedynczej odpowiedzialności

W następującymwideo, autor przyjmuje istniejącą klasę i przypisuje mu zasadę pojedynczej odpowiedzialności. Bierze klasę drukowania, która ma zadanie dostępu do danych, formatowania i drukowania raportu. Rozbija każdą metodę na własną klasę, więc tworzy klasę DataAccess do obsługi dostępu do danych, tworzy klasę ReportFormatter, aby obsłużyć formatowanie raportu, i tworzy klasę ReportPrinter do obsługi drukowania raportu. Oryginalna klasa Report zostaje następnie pozostawiona jedną metodą, Print (), która wywołuje metodę klasy ReportPrinter Print. DataAccess i ReportFormatter wydają się ponosić odpowiedzialność, ale ReportPrinter opiera się na DataAcess i ReportFormatter, więc czy to nie przerwie SRP, czy też nie zrozumiałem go?

questionAnswers(4)

yourAnswerToTheQuestion