Sobes.tech
Junior — Middle

Kun je een voorbeeld geven van het gebruik van het principe van enkele verantwoordelijkheid (D uit SOLID) in je projecten?

sobes.tech AI

Antwoord van AI

Принцип единственной ответственности (Single Responsibility Principle, SRP) из SOLID говорит, что класс должен иметь только одну причину для изменения, то есть отвечать за одну конкретную задачу.

В моих проектах я применял этот принцип, разделяя логику на отдельные классы. Например, в проекте по обработке заказов:

  • Класс Order отвечает только за данные заказа (товары, количество, стоимость).
  • Класс OrderValidator — за проверку корректности заказа.
  • Класс OrderRepository — за сохранение заказа в базу данных.
  • Класс OrderNotifier — за отправку уведомлений клиенту.

Такое разделение облегчает поддержку и тестирование, поскольку изменения в логике валидации не затрагивают сохранение или уведомления.

Пример на C#:

public class Order
{
    public int Id { get; set; }
    public List<Item> Items { get; set; }
}

public class OrderValidator
{
    public bool Validate(Order order)
    {
        // Проверка заказа
        return order.Items != null && order.Items.Count > 0;
    }
}

public class OrderRepository
{
    public void Save(Order order)
    {
        // Сохранение в БД
    }
}

public class OrderNotifier
{
    public void Notify(Order order)
    {
        // Отправка уведомления
    }
}

Такой подход соответствует SRP и улучшает структуру кода.