本帖最后由 dyfvicture 于 2014-05-05 16:43:21 编辑

解决方案 »

  1.   

    不是很明白,为什么你的接口EventSource里头是空的,如果里头有getPayCount()方法定义,那么就直接写成public class CommonNumHandler implements ConditionHandler {
        @Override
        public int parseEvent(EventSource eventSource) {       
                return source.getPayCount();
        }
    }不行吗?
      

  2.   

    EventSource作为父类接口,只当做一个无实际意义标记,具体行为在子类中规定,比如获得什么东西的事件,或者花钱的事件,子类根据自己的逻辑需求,定义结构。而事件处理handler中应该得到具体的EventSource子类,处理子类的获得了什么东西,或花了多少钱。
    你这样写属于强制规定handler就只能传入具体子类实现,无法用继承ConditionHandler 的方式实现,写法也有误,应该这样写:public class CommonNumHandler {
        @Override
        public int parseEvent(PayGoldEventSource eventSource) {       
                return source.getPayCount();
        }
    }这种无父子关系的写法无法实现我的需求