Back to questions
Junior — Middle
69
Можешь ли ты привести пример использования принципа единственной ответственности (D из SOLID) в своих проектах?
Companies where asked
Банк ПСБ
Answer from AI
sobes.tech 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 и улучшает структуру кода.