Confuso sobre o Princípio da Responsabilidade Única no exemplo a seguir

Na sequênciavídeo, o autor toma uma aula existente e atribui o Princípio de Responsabilidade Única a ela. Ele leva uma classe de impressão que tem o trabalho de acessar dados, formatação e impressão do relatório. Ele divide cada método para sua própria classe, então ele cria uma classe DataAccess para manipular o acesso a dados, ele cria uma classe ReportFormatter para manipular a formatação do relatório e cria uma classe ReportPrinter para manipular a impressão do relatório. A classe de relatório original é então deixada com um método, Print (), que chama o método Print da ReportPrinter. DataAccess e ReportFormatter parecem ter responsabilidade, mas o ReportPrinter depende do DataAcess e do ReportFormatter, então isso não quebra o SRP ou eu o entendo mal?

questionAnswers(4)

yourAnswerToTheQuestion