Каждый класс должен иметь только одну ответственность и она должна быть инкапсулирована внутри него. Хотя как-то оно непонятно звучит. Давайте переформулируем в «одна сущность делает ровно одну вещь» (под сущностью можно понимать класс, функцию, может быть даже переменную). Простейший пример: (полностью этот код здесь) Сколько вещей делает наша функция? Только ли она получает информацию о температуре в городе? Не-а, она делает ещё что-то, а именно печатает её в консоль. Эта функция отлично будет выполнять свою работу в консольной утилите, но что если нам нужно вывести эту температуру на веб-страницу? Копипастить её? А всё из-за нарушения SRP. Обычно функциональность разделяют на три шага: Перепишем код, приведя его в соответствии с SRP: Что мы сделали? Из минусов только потеря оригинальной функции printTemp, но она настолько ничего не делает, что не имеет смысла её писать. Всем занимаются другие функции. В целом, прежде чем писать код, заранее нужно прикинуть, на какие этапы можно р
Принцип единой ответственности (Single Responsibility Principle, SRP)
12 апреля 202012 апр 2020
17
1 мин