观察者模式

来源:互联网 发布:工业之家软件 编辑:程序博客网 时间:2024/06/06 00:13
[code]
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Observer {
    private Map>mHandlerListMap = new HashMap<>();

    public interfaceEventHandler {
      
       boolean handleEvent(Object event);
    }

    voidaddEventHandler(String eventName, EventHandler handler) {
       List handlerList =mHandlerListMap.get(eventName);
       if(handlerList == null) {
          mHandlerListMap.put(eventName, (handlerList = newArrayList<>()) );
       }
       handlerList.add(handler);
    }

    void sendEvent(StringeventName, Object event) {
       List handlerList =mHandlerListMap.get(eventName);
       if(handlerList != null) {
          for(EventHandler handler: handlerList) {
             if(!handler.handleEvent(event)) {
                 break;
              }
           }
       }
    }

    voidremoveAllEventHandler() {
       mHandlerListMap.clear();
    }

    void removeEvent(StringeventName) {
       mHandlerListMap.remove(eventName);
    }

    voidremoveEventHandler(String eventName, EventHandler handler) {
       List handlerList =mHandlerListMap.get(eventName);
       if(handlerList != null) {
          handlerList.remove(handler);
       }
    }
}

[/code]
0 0
原创粉丝点击