Когда вы нарушаете SRP (принцип единой ответственности)? - PullRequest
5 голосов
/ 02 апреля 2009

SRP ( PDF версия; HTML версия) утверждает, что

Никогда не должно быть более одной причины для изменения класса

Когда вы смотрите в Outlook, в окне «Событие календаря» есть кнопка «Сохранить и Закрыть».

alt text

Поэтому, когда функциональные возможности одного или обоих Сохранить или Закрыть изменяются, эта кнопка должна измениться. Это явно нарушает ПСП.

Эта функция экономит время и удобна, поскольку именно это большинство пользователей ожидают при сохранении встречи в календаре.

Но теперь мой вопрос: когда еще нарушаете ли вы SRP, кроме случаев, когда эта функция должна использоваться в Outlook?

1 Ответ

20 голосов
/ 02 апреля 2009

SRP не применяется к пользовательским интерфейсам. Имейте в виду, что, хотя кнопка называется «Сохранить и закрыть», несомненно, могут существовать два отдельных метода или типа для обработки функций сохранения и закрытия. Кнопка просто связывает эти две отдельные части функциональности вместе.

Если вы чувствуете необходимость нарушить SRP, вам необходимо пересмотреть свой подход. Любое нарушение SRP может быть преобразовано в новый метод или тип, который предоставляет составные функциональные возможности посредством объединения двух частей.

...