У меня есть класс, который использует pyodbc
соединение с базой данных, класс также использует cursor
этого соединения для выполнения sql операторов, поэтому в настоящее время я внедряю соединение с базой данных следующим образом:
class MyClass:
def __init__(self, db):
self.db = db
self.cursor = db.cursor()
Хотя я спрашиваю, не придерживаюсь ли я правильного внедрения зависимостей с помощью self.cursor = db.cursor()
. Должен ли я вместо этого ввести курсор тоже? Вот так:
class MyClass:
def __init__(self, db, cursor):
self.db = db
self.cursor = cursor
Еще одна мысль, которая у меня возникла, заключалась в том, чтобы не иметь self.cursor
переменной экземпляра, и просто вызывать self.db.cursor()
в любое время, когда мне нужно использовать курсор.
Что лучший подход для того, чтобы иметь класс, который правильно внедряет свои зависимости? Зависит ли класс от соединения с базой данных и от курсора, или просто от соединения с базой данных?