Struchkov Mark
1536a6c68c
All checks were successful
continuous-integration/drone/push Build is passing
43 lines
1.8 KiB
Markdown
43 lines
1.8 KiB
Markdown
---
|
||
aliases:
|
||
- SRP
|
||
- принцип единственной ответственности
|
||
- Single Responsibility
|
||
tags:
|
||
- maturity/🌱
|
||
date: 2024-09-27
|
||
zero-link:
|
||
- "[[../garden/ru/meta/zero/00 Архитектура ПО|00 Архитектура ПО]]"
|
||
parents:
|
||
- "[[SOLID|SOLID]]"
|
||
linked:
|
||
---
|
||
Каждый класс должен иметь только одну ответственность, или одну причину для изменения. Это означает, что класс должен выполнять лишь одну задачу или представлять один аспект системы.
|
||
|
||
- **Пример нарушения SRP**: Класс, который одновременно управляет данными пользователя и отправкой сообщений по электронной почте.
|
||
- **Решение**: Разделить задачи на два отдельных класса — один для управления пользователем, другой для работы с уведомлениями.
|
||
|
||
```java
|
||
public class UserService {
|
||
// Только управление пользователем
|
||
}
|
||
|
||
public class EmailService {
|
||
public void sendEmail(String email, String message) {
|
||
// Только отправка сообщений
|
||
}
|
||
}
|
||
```
|
||
***
|
||
## Мета информация
|
||
**Область**:: [[../../meta/zero/00 Архитектура ПО|00 Архитектура ПО]]
|
||
**Родитель**:: [[SOLID]]
|
||
**Источник**::
|
||
**Создана**:: [[2024-09-27]]
|
||
**Автор**::
|
||
### Дополнительные материалы
|
||
-
|
||
|
||
### Дочерние заметки
|
||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|