SOLID
Интерактивное демо «SOLID» — раздел Энциклопедия · Код и разработка.
Принципы SOLID — интерактивно
Переключайте букву, сравнивайте нарушение и корректный дизайн на мини-сценариях из статьи
S — Единственная ответственность
У класса — одна причина для изменения.
Сценарий↑ использует
UserRepository
save()
EmailService
send()
UserManager
register_user()
Нажмите кнопку действия
Код
class UserRepository: ...
class EmailService: ...
class UserManager:
def __init__(self, repo, mailer): ...Изменения локализованы: меняется только затронутый модуль или добавляется новый тип.