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