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