實現一個接口的最佳方式是以各種指定方式組合相同接口的一些實例?我需要爲多個接口執行此操作,並且我希望最小化樣板並仍然實現高效率,因爲我需要這樣的關鍵生產系統。編程實現一個接口,以各種指定方式組合相同接口的一些實例
這是一個問題的草圖。
在思想上,我有一個通用的組合類需要實例,並指定不同的組合子:
class Combiner<I> {
I[] instances;
<T> T combineSomeWay(InstanceMethod<I,T> method) {
// ... method.call(instances[i]) ... combined in some way ...
}
// more combinators
}
現在,讓我們說,我想實現在許多其他如下界面:
Interface Foo {
String bar(int baz);
}
我想最終得到這樣的代碼:
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); }
});
}
}
現在,這可以如果接口有很多方法,就會很快變長。我知道我可以使用Java反射API中的動態代理來實現這樣的接口,但通過反射訪問方法的速度要慢上百倍。那麼在這種情況下,樣板和反思有什麼選擇?
這是一個相當大的標題! – Secko 2010-05-22 00:41:36