개발지식/ETC
Dependency Injection 의존성 주입
kimty1121
2023. 12. 6. 00:53
의존성 주입에 대한 설명이 여러가지 있는데, 코드의 예가 한가지 있어 기록해 둔다.
리포지트로는 서비스클래스의 인수로서 주입받는 설계로 만든다.
NG
class Service:
~~ 생략
repository = TaskRepositoryMysql()
~~ 생략
서비스 내에서 리포지토리를 불러내면 1개의 리포지토리니 의존한 클래스가 되버림
OK
class Service:
def __init__(self, repository):
self.repository = repository
~~ 생략
service = Service(TaskRepositroyMysql)
service.save(task)
외부에서 인수로서 리포지토리를 받으면
서비스 클래스 이용시에 리포지토리가 지정되기 때문에 의존성이 없어짐