Я пытаюсь понять принцип единой ответственности и определить возможный класс, который может быть в моей системе.
На данный момент я знаю принципы, сказанные дядей Бобом, а именно: избегайте ласковых слов, таких как "менеджер", "данные", "супервизор" или "процессор". Мы должны иметь возможность написать описание класса менее чем из 25 слов без использования таких слов, как «если», «и», «или» и «но».
Однако проблема возникает, когда я пытаюсь определить, правильно ли я следую SRP.
Например: у меня был сценарий, в котором 1. Мне нужно отправить электронное письмо пользователю. 2. Электронная почта будет проверена, когда пользователь перейдет по ссылке.
Итак, мой класс будет таким:
Сценарий 1:
class EmailVerifier
{
function sendEmail();
function verifyEmail();
}
OR
Сценарий 2:
class EmailVerifier
{
function verifyEmail();
}
class MailSender
{
function verifyEmail();
}
Если я скажу, что сценарий 1 верен, я попытался написать описание класса, это будет примерно так:
Класс EmailVerifier отправляет электронное письмо клиенту и проверяет его.
Если я говорю, что сценарий 2 верен, то для каждого встречающегося глагола или каждой функции, например: verifyEmail (), sendEmail (), addEmail (), мне нужно создать новый класс.
Подскажите, пожалуйста, какой способ правильный.
Также,
У меня есть сценарий, в котором я должен,
Добавить клиента, Удалить клиента, Изменить клиента, Сохранить клиента Поиск клиента, Выбрать всех клиентов, Найти клиента по идентификатору
Могу ли я назвать такие классы как CustomerService class или любая другая стратегия именования будет лучше.
Примечание. Я уже видел другие подобные вопросы
Именование классов - Как не называть все« менеджером »‹WhatEver›?