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

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