1

私は次のような設計をしています:
イベントとしましょう。いくつかのオブジェクトを処理する一連のクラスがあります。
各クラスは、特定のタイプのイベントのみを処理します。
処理が必要なこれらのオブジェクト/イベントがあると、すべてのイベントをループし、完了するまですべてのプロセッサをループします。
私が行った唯一の最適化は、イベントがクラスに適切でない場合、すぐに戻ることです。このループ
を取り除くために設計を変更するにはどうすればよいですか? O(N^2)それとも、変更する価値がなく、このままでよいのでしょうか。


アルゴリズム コードの例を 更新します。

for(Event e:events) {  
    for(Processor p:processors) {  
        p.process(e); 
    }  
}  
4

2 に答える 2

5

Observer パターンを実装できます。各プロセッサはオブジェクトを監視し、イベントをリッスンします。プロセッサは、イベントの種類に基づいてイベントを処理するかどうかを決定します。

Java には、実際には、このパターン用に明示的に意図された 2 つのインターフェースがあります:ObservableObserver.

于 2013-06-27T19:57:25.277 に答える
0

すべてのイベント タイプに特定のプロセッサがある場合は、Map (EventClass -> EventProcessor) を作成してから、1 つのループ (O(N)) を削除できます。

于 2013-06-27T19:58:18.057 に答える