addListener ではなく、setListener メソッドを使用して登録された多くのリスナーがあります。したがって、複数のリスナーをオブジェクトに登録できるようにするには、マルチプレクサを使用する必要があります。これで問題ありませんが、ここで、使用しているすべてのリスナー インターフェイスに対してマルチプレクサを作成する必要があります。だから私の質問は: 次のコードに必要な Mux.create() を実装することは可能ですか?
AppleListener appleListener1 = new AppleProcessorA();
AppleListener appleListener2 = new AppleProcessorB();
AppleListener appleListenerMux = Mux.create(appleListener1, appleListener2);
Apple apple = new Apple();
apple.setListener(appleListenerMux);
OrangeListener orangeListener1 = new OrangeProcessorA();
OrangeListener orangeListener2 = new OrangeProcessorB();
OrangeListener orangeListenerMux = Mux.create(orangeListener1, orangeListener2);
Orange apple = new Orange();
orange.setListener(orangeListenerMux);
class Mux {
public static <T> T create(T... outputs) { }
}
これは、リフレクションを使用して可能になる可能性があると思います。リフレクションを使用することが悪い考えになる理由はありますか? (性能は気になる)