description |
---|
Принцип единственной ответственности | Single Responsibility Principle | SRP |
SRP звучит так:
Существует лишь одна причина, приводящая к изменению класса.
Ответственность – это причина изменения кода.
Если при изменении кода, отвечающего за одну ответственность, в приложении появляются исправления кода, отвечающего за другую ответственность – есть нарушения SRP.
Антипаттерн – божественный объект.
{% hint style="info" %} Собирайте вместе тот функционал, который будет изменяться единовременно и по одной причине. И разделяйте то, что изменяется в разное время по разным причинам. {% endhint %}
class Employee {
/**
* 1-я ответственность
*
* Бизнес-логика
*/
calculatePay () {
// ...
}
/**
* 2-я ответственность
*
* Управление сохранением
*/
save () {
// ...
}
}
От класса Employee зависят сразу 2 актора:
- бухгалтерия (метод calculatePay)
- администраторы БД (метод save)
{% hint style="info" %} Актор - лицо, заинтересованное в изменении кода. {% endhint %}
Бизнес-логика по природе своей изменяется довольно часто. Механизмы сохранения изменяются гораздо реже и совсем по другим причинам.