我有很多使用setListener方法注册的监听器,而不是addListener.因此,为了允许多个侦听器注册到一个对象,我必须使用多路复用器.这很好,但现在我必须为我拥有的每个监听器接口创建一个多路复用器.所以我的问题是:是否可以根据以下代码的需要实现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) { }
}
Run Code Online (Sandbox Code Playgroud)
我想这可能是使用反射.有没有理由使用反射会是一个坏主意?(表现浮现在脑海中)