Шаблон дизайна, который обозначает первая буква в этом акрониме, - это принцип единой ответственности. Вот цитата:
принцип единоличной ответственности
утверждает, что каждый объект должен иметь
единственная ответственность, и это
ответственность должна быть полностью
инкапсулированный классом.
Это просто и понятно, пока мы не начнем кодировать. Предположим, у нас есть класс с четко определенной единственной ответственностью. Чтобы сериализовать экземпляры класса, нам нужно добавить в этот класс специальные атрибуты. Так что теперь у класса есть другая ответственность. Разве это не нарушает ПСП?
Давайте посмотрим другой пример - реализация интерфейса. Когда мы реализуем интерфейс, мы просто добавляем другие обязанности, например, распределяем его ресурсы или сравниваем его экземпляры или что-то подобное.
Итак, мой вопрос. Можно ли строго придерживаться SRP? Как это можно сделать?