首页 > 解决方案 > 执行覆盖方法的所有实例

问题描述

我正在尝试设计一个简单的过滤机制,并且正在寻找以下行为:

public abstract class Filter {
    public abstract boolean doFilter(String comm);

    public boolean filter(List<Filter> col) {
        //return true if all filters ret true, false otherwise
    }
}

public class FilterA extends Filter {
    public boolean doFilter(String comm) {
        if(comm.charAt(0)=='a')
            return true;
        return false;
    }
}

public class FilterB extends Filter {
    public boolean doFilter(String c) {
        return c.length() > 10;
    }
}


我有一个根过滤器类,以及许多扩展它的过滤器,并有自己的 doFilter(String c) 方法实现。然后我希望能够调用所有过滤器的 doFilter 方法并从那里开始。当前的方式(使过滤器方法静态并使用过滤器列表+要过滤的字符串调用它似乎非常笨拙。

如果我想根据其他内容动态选择哪些过滤器,我该怎么办?假设字符串以 # 开头,例如,我只想使用过滤器 A、E 和 F。(动态设置)

谢谢你

标签: javaoopobject

解决方案


推荐阅读