동일한 인터페이스의 일부 인스턴스를 다양한 방법으로 결합하는 인터페이스를 구현하는 가장 좋은 방법은 무엇입니까? 여러 인터페이스에 대해이 작업을 수행해야하며 핵심 생산 시스템에 필요하기 때문에 상용구를 최소화하면서도 여전히 우수한 효율성을 달성하고 싶습니다.다양한 방법으로 동일한 인터페이스의 일부 인스턴스를 결합하는 인터페이스를 프로그래밍 방식으로 구현
다음은 문제의 스케치입니다. 추상적으로
, 나는 인스턴스를 받아 다양한 연결자 지정 일반적인 결합기 클래스가 있습니다
Interface Foo {
String bar(int baz);
}
: 이제
class Combiner<I> {
I[] instances;
<T> T combineSomeWay(InstanceMethod<I,T> method) {
// ... method.call(instances[i]) ... combined in some way ...
}
// more combinators
}
을의 나는 많은 다른 사람의 사이에서 다음과 같은 인터페이스를 구현하고 싶은 말은하자
나는 다음과 같은 코드로 끝내고 싶다 :
class FooCombiner implements Foo {
Combiner<Foo> combiner;
@Override
public String bar(final int baz) {
return combiner.combineSomeWay(new InstanceMethod<Foo, String> {
@Override public call(Foo instance) { return instance.bar(baz); }
});
}
}
인터페이스에 많은 메소드가있는 경우 신속하고 길게 느껴질 수 있습니다. 자바 리플렉션 API의 동적 프록시를 사용하여 그러한 인터페이스를 구현할 수는 있지만 리플렉션을 통한 메소드 액세스는 백 배 느리다는 것을 알고 있습니다. 이 경우 상용구 및 반성의 대안은 무엇입니까?
이것은 상당히 큰 제목이었습니다! – Secko