Replies: 4 comments
-
TaskId를 생성해주는 인터페이스를 생성하여 구현체 TaskIdGenerator 를 작성하고 TaskRepository에서는 인터페이스에만 의존하여 주입받도록 수정하면 TaskRepository에는 수정이 일어나지 않을것 같습니다. |
Beta Was this translation helpful? Give feedback.
-
이 경우 TaskRepository에서 명시적으로 TaskIdGenerator를 선언해서 받는 부분이 있으면 좋을 것 같습니다. 그리고 TaskIdGenerator를 받을 때 형욱님이 말씀하신 것처럼 인터페이스로 의존성을 주입 받으면 더 좋을 것 같습니다 |
Beta Was this translation helpful? Give feedback.
-
저라면, 앞으로 코드를 작성하면서 변화될 부분은 Generator 이기 때문에 Generator에 대한 인터페이스를 따로 생성하고, 그안에 TaskIdGenerator를 작성 할 것 같습니다. TaskRepository는 위에서 두 분이 언급하셨듯이 인터페이스에 의존하여 주입받도록 수정하면 TaskRepository에는 코드 변경이 일어나지 않을 것 같아요. |
Beta Was this translation helpful? Give feedback.
-
엄밀히 말하면, 이 경우엔 한 객체에 다른 객체에 의존한 게 아니라 허공에 의존하고 있습니다. 따라서, 저라면 단순한 원칙을 기계적으로 따를 것 같습니다. “어떤 경우에도 -- P.S. 사실 저는 Repository가 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
문제
객체가 다른 객체에 직접 의존하고 있어 의존성이 드러나지 않는다.
예시
TaskRepository
의postTask
가TaskIdGenerator
에 직접 의존하고 있습니다. 이것은 우리가 암시적인 의존성이라고 부르는데의존성이 밖으러 드러나지 않기 때문에,
TaskIdGenerator
코드가 변경되었을 때TaskRepository
도 변경될 수 있음을 파악하기어렵게 만듭니다. 그러면 우리가 코드를 변경했을 때 어떤 영향이 있을지 파악하기 어렵게 만들고 그 결과를 코드로 수정하기 어렵게 만듭니다.
어떻게 해결해야 할까요?
Beta Was this translation helpful? Give feedback.
All reactions