Menu
Coddy logo textTech

Единственная ответственность

Урок 22 из 28 курса Clean Code — пишите код лучше на Python на Coddy.

"Никогда не должно быть более одной причины для изменения класса."

Принцип единственной ответственности (SRP) гласит, что каждый класс и функция должны иметь только одну задачу или одну причину для изменения.

Цели —

  • Создание высокосвязных и надежных классов и функций.
  • Стимулирование композиции классов
  • Избежание дублирования кода
challenge icon

Задание

Средне

Вам дан класс Person, у которого есть метод save для сохранения человека в базу данных.

В данном коде у класса есть две обязанности:

  1. Создание и управление объектом человека
  2. Сохранение человека в базу данных

Ваша задача — сделать так, чтобы у 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)

Все уроки раздела Clean Code — пишите код лучше на Python