Принцип единственной ответственности (SRP) требует, чтобы класс имел только одну причину для изменения. Это значит, что нужно проектировать классы, которые фокусируются на одной, чётко определённой ответственности, вместо того чтобы разбираться с несколькими не связанными между собой задачами.
Допустим, у тебя есть класс OrderProcessing, который занимается несколькими аспектами управления заказами:
public class Order
{
public int Id { get; set; }
public string[] Items { get; set; }
public double Price { get; set; }
public string Email { get; set; }
}
public class OrderProcessing
{
public void ProcessOrder(Order order)
{
ValidateOrder(order.Items);
SaveOrder(order);
SendConfirmationEmail(order.Id, order.Email);
}
private void ValidateOrder(string[] items)
{
// Валидация
}
private void SaveOrder(Order order)
{
// Логика сохранения в БД
}
private void SendConfirmationEmail(string orderId, string email)
{
// Логика отправки письма
}
}
Чтобы правильно реализовать SRP, раздели ответственности на отдельные классы:
OrderValidator — отвечает за валидациюOrderRepository — управляет операциями с БДEmailService — управляет отправкой писемOrderProcessor — координирует рабочий процессРеализация SRP даёт:
Такой подход гарантирует, что каждый класс имеет только одну причину для изменения, что делает твой код более поддерживаемым и гибким в отношении будущих требований.
Согласно принципу единственной ответственности (Single Responsibility Principle), класс должен иметь только одну причину для изменения, что означает, что он должен отвечать за одну, хорошо определённую ответственность.
Новый — ещё не проверен сообществом
Вы