Я пытаюсь изучить принцип единой ответственности (SRP), но это довольно сложно, так как мне очень трудно понять, когда и что мне следует удалить из одного класса и куда я должен поместить / организовать это.
Я искал в Google некоторые материалы и примеры кода, но большинство материалов, которые я нашел, вместо того, чтобы облегчить понимание, усложнили понимание.
Например, если у меня есть список пользователей и из этого списка, у меня есть класс , называемый Control, который выполняет множество вещей, например отправляет приветствие и прощальное сообщение, когда пользователь входит / проверить, может ли пользователь входить или нет, и пинать его, получать пользовательские команды и сообщения и т. д.
Из этого примера вам не нужно много, чтобы понять, что я уже слишком много делаю в один класс, но все же я не достаточно понимаю, как впоследствии его разделить и реорганизовать.
Если я понимаю SRP, у меня будет класс для присоединения к каналу, для приветствия и прощания, класс для проверки пользователя, класс для чтения команд, верно?
Но где и как мне использовать например, удар?
У меня есть класс проверки, поэтому я уверен, что у меня будут все виды проверки пользователя, включая погоду или нет, пользователя следует выгнать.
Значит, функция kick будет внутри класса соединения с каналом и будет вызываться, если проверка завершится неудачно?
Например:
public void UserJoin(User user)
{
if (verify.CanJoin(user))
{
messages.Greeting(user);
}
else
{
this.kick(user);
}
}
Будете признательны, если бы вы, ребята, помогли мне здесь с легкими для понимания материалами C #, которые онлайн и бесплатно или показав мне, как я бы разделил цитируемый пример и, если возможно, несколько примеров кодов, советов и т. д.