2016-09-06 4 views
0

코드 조각을 리팩토링하고 한 클래스 (TestImpl이라고 함)에서 으로 메소드 (myMethod)를 호출해야합니다. 따라서이 메서드를 인터페이스 (ITest)에 추가하려고합니다.구현의 내부 클래스를 참조하는 인터페이스

그러나 문제는 메서드의 매개 변수가 내부 클래스 TestImpl을 참조한다는 것입니다. 예 :

myMethod (TestImpl.NewType var1, ...) 

인터페이스가 자체 구현을 참조하기 때문에 다소 이상하게 보입니다. 가장 좋은 해결책은 무엇입니까? 아니면 정말로 문제가되는 것입니까?

+0

'NewType'은'TestImpl'의 비공개 멤버에 액세스해야합니까? 'NewType'은'TestImpl'에서만 사용됩니까? – acm

답변

2

정적 클래스라고 이해 했으므로 문제가되지 않습니다. 그러나, 나는 그것이 NewTypeTestImpl에서 또는 그것은 DI 원칙에 위배이 NewType

0

을 일반화 할 수있는 새로운 인터페이스를 만드는 것이 이동하는 것이 낫다 생각, 인터페이스는 아니 그 구현에 종속성을 컴파일 할 필요는 없습니다. NewType은 외부 인터페이스 또는 클래스로 추출되어야합니다.

관련 문제