Один из принципов SOLID - SRP

у меня есть общий класс File, который наследуется от класса FileWrite, который выполняют запись данных в файл, и от класса FileSearch, который выполняет поиск информации по файлу. Скажите есть ли тут нарушение принципа SRP(single-responsibility principle)? введите сюда описание изображения


Ответы (1 шт):

Автор решения: Mira
  1. Single responsibility principle - не означает что компонент должен отвечать за одно действие, но означает что должна быть одна (всмысле одна и та же) причина изменения для кода в этом классе. То есть если запись в файл и поиск по файлу меняется по одной и той же причине (потому что сменился формат файла например) - то эти функции должны быть помещены в один компонет, в один и тот же класс. Если меняются по разным причинам - например чтение более низкоуровневое и зависит от файловой системы или носителя, а поиск - не зависит, он зависит только от чтения - тогда можно разбить в разные компоненты.
  2. У вас сделанно наследование немного не логично получается что может быть класс умеющий искать по файлу, но не читать. Но поиск подразумевает чтение файла.
→ Ссылка