/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/python/code-409-11-002/main.py
30 строк
1 KB
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
# Абстракция (интерфейс) - то, от чего зависят оба class DatabaseInterface: def save(self, Данные): raise NotImplementedError # Модуль Б (деталь) зависит от абстракции class PostgresDB(DatabaseInterface): def save(self, Данные): print(f"Сохраняю {Данные} в PostgreSQL") class MySQLDB(DatabaseInterface): def save(self, Данные): print(f"Сохраняю {Данные} в MySQL") # Модуль А (бизнес-логика) тоже зависит от абстракции class UserService: def __init__(self, db: DatabaseInterface): # ✅ получает абстракцию извне self.db = db def register(self, name): self.db.save(name) # Пользуемся postgres = PostgresDB() service = UserService(postgres) # можно отдать любую БД service.register("Алексей") mysql = MySQLDB() service2 = UserService(mysql) # тот же код, другая БД service2.register("Мария")