하나의 인터페이스가 여러 개의 상위 인터페이스를 확장하고 그 인터페이스의 구현이 하나 인 다음과 같은 디자인이 있습니다. 내 클라이언트 클래스에서여러 인터페이스를 Guice의 하나의 impl에 자동으로 바인딩
는 차라리 ZooKeeperClient
보다, 단지 부모 인터페이스 중 하나 이상에 의존합니다. 클라이언트 클래스의 종속성을 줄여주는 디자인이 더 좋으며 테스트에서 모의 작업을 더 쉽게 수행 할 수 있다고 생각합니다.
@Inject
public Foo(ServiceUpdater su) {
// ...
}
그러나, 나는 수동으로 구현 클래스에 각 인터페이스에서 바인딩을 추가해야이 달성하기 위해 :
bind(ServiceCreator.class).to(ZooKeeperClientImpl.class)
bind(ServiceDeleter.class).to(ZooKeeperClientImpl.class)
bind(ServiceUpdater.class).to(ZooKeeperClientImpl.class)
// ...
bind(ZooKeeperClient.class).to(ZooKeeperClientImpl.class)
을 나는이 반복을 피하고 바인딩 Guice을 알 수있는 방법이 있습니까 한 번에 전체 계층 구조? 뭔가가 ...
bind(ZooKeeperClient.class/* and its parents*/).to(ZooKeeperClient.class)
그렇지 않은 경우 여기에 내 디자인에 문제가 있습니까? 내가 기분이 좋지 않은 일을하고 있니?
확인 및 링크를 제공해 주셔서 감사합니다. –