Единственная ответственность
Урок 22 из 28 курса Clean Code — пишите код лучше на Python на Coddy.
"Никогда не должно быть более одной причины для изменения класса."
Принцип единственной ответственности (SRP) гласит, что каждый класс и функция должны иметь только одну задачу или одну причину для изменения.
Цели —
- Создание высокосвязных и надежных классов и функций.
- Стимулирование композиции классов
- Избежание дублирования кода
Задание
СреднеВам дан класс Person, у которого есть метод save для сохранения человека в базу данных.
В данном коде у класса есть две обязанности:
- Создание и управление объектом человека
- Сохранение человека в базу данных
Ваша задача — сделать так, чтобы у Person была только одна обязанность.
- Создайте класс
Databaseс методомsave. - Создайте связь между
PersonиDatabase
Существует множество вариантов выполнения этой задачи, мы стремимся к одному конкретному, используйте подсказки при необходимости!
Обратите внимание, что когда мы создаем отдельный класс для Database, мы можем управлять всеми вещами, "Database related", в одном месте!
Попробуйте сами
class Person:
def __init__(self, name):
self.name = name
def save(self):
print('Saving person with name "%s"' % self.name)