Единая ответственность и методы - PullRequest
0 голосов
/ 13 февраля 2019

Я думаю, что мог бы ответить на свой вопрос здесь, но позвольте мне сказать, что я понимаю, что SRP на уровне метода означает, что метод выполняет одну роль.Если у меня есть методы, каждый из которых по отдельности покрывает одну конкретную роль в моем классе, но метод, который использует множество этих методов для выполнения одной роли, например save (), все равно будет придерживаться SRP?

Вот пример:

public void saveCertificationToDB(Cert cert){
  if(certificateIsNotExpired(cert){
      setCertProperties(cert);
      openConnectionToDB();
      overwriteCertificateInDB(cert);
      closeConnectionToDB();
      notifyUserSaveSuccessful();
      }
 }

1 Ответ

0 голосов
/ 13 февраля 2019

Принцип единой ответственности:

Специального правила не существует, только SRP является руководством.Но если вы хотите думать о SRP, вам следует всегда помнить

Единственная причина для изменения блока кода, такого как класс, функция и т. Д.

Но согласно вашемуДля данной функции есть много причин изменить свой код функционального блока.

Пример:

если функция установки свойств по какой-либо причине изменится, вам придется изменить saveCertificationToDB ()

Таким же образом, если какие-либо изменения в другой вызывающей функции по какой-либо другой причине, то также saveCertificationToDB () необходимо изменить

, так что, как правило, есть многоне хватает

...