依存性注入は便利な手法ですが、ランタイム依存性に直面した場合はどのような方法が推奨されますか?ランタイム依存性の処理
イベントのタイプとリクエストを開始したユーザーに応じて、イベントプロセッサにイベントをグルーグルしたいとします。
public interface Event {}
public interface EventProcessor {
public void handleEvent(Event e);
}
class EventProcessorFactory {
private final User u;
private final Event e;
public EventProcessorFactory(User u, Event e) {
this.u = u;
this.e = e;
}
public EventProcessor get() {
EventProcessor ep;
if(e instanceof LocalEvent) {
ep = new LocalEventProcessor();
}
else if(e instanceof RemoteTriggeredEvent && u instanceof AdminUser) {
//has static dependencies
ep = new RemoteEventProcessor(u);
}
else {
ep = new DefaultEventProcessor();
}
}
}
は今複雑さは、工場内にカプセル化されているが、どのように他の私は、同じ結果を得ることができ、あまりにも多くの定型コードなし?
インスタンスの重い使用は、Javaの「臭い」の1つで、デザインに問題があることを伝えていますが、私たちにお尋ねしてから考えていると思います! – SteveD