Встречается на собеседованиях • сегодня

Верно ли, что использование прослойки между твоим кодом и БД в виде ORM-это может считаться выполеннием принципа инверсии зависимости

Да, использование ORM можно считать примером выполнения принципа инверсии зависимостей (DIP). ORM абстрагирует работу с БД, позволяя коду зависеть от интерфейсов (например, моделей ORM), а не от конкретной реализации базы данных. Это делает систему гибче — можно менять БД, не переписывая бизнес-логику.

Пример с SQLAlchemy:

python
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

class User(Base):
tablename = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)

Код зависит от абстракции (модель User), а не от конкретной БД

engine = create_engine('sqlite:///users.db')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()

new_user = User(name='Alice')
session.add(new_user)
session.commit()

text

Здесь бизнес-логика работает с `User`, а не с SQL-запросами, что соответствует DIP. Однако важно, чтобы ORM не навязывала свою структуру доменному слою.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы