如何从双循环处理转换为更好的东西?

Jim*_*Jim 1 java algorithm design-patterns data-structures

我有以下设计:
我有一系列的类来处理一些对象让我们说事件.
每个类仅处理特定类型的事件.
现在当我有这些需要处理的对象/事件时,我遍历所有事件然后遍历所有处理器,直到我完成.
我做的唯一优化是,如果一个事件不适合一个类立即返回.
我怎么能改变我的设计摆脱这个O(N^2)循环?或者它可能不值得改变,这是好的吗?

更新
示例算法代码:

for(Event e:events) {  
    for(Processor p:processors) {  
        p.process(e); 
    }  
}  
Run Code Online (Sandbox Code Playgroud)

Jus*_*ner 5

您可以实现Observer模式.每个处理器都会观察对象并监听事件.处理器将根据事件的类型决定是否处理事件.

Java实际上有两个明确用于此模式的接口:ObservableObserver.