Menu
Coddy logo textTech

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

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

«У class никогда не должно быть более одной причины для изменения».

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

Цели —

  • Создавать высокосвязные и устойчивые class и функции.
  • Поощрять композицию class
  • Избегать дублирования кода
challenge icon

Задание

Средне

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

В данном коде class имеет две ответственности:

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

Ваша задача — убедиться, что Person имеет только одну ответственность.

  • Создайте class Database с методом save.
  • Создайте связь между Person и Database.

Существует множество вариантов выполнения этой задачи, но мы стремимся к одному конкретному; при необходимости используйте подсказки!

Обратите внимание: когда мы создаём отдельный class для 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

Потренируйтесь самостоятельно: Онлайн-компилятор Python