package com.djk.design.action.filter;
public interface Filter
{
void doFilter(Filter filter);
}
package com.djk.design.action.filter;
import java.util.ArrayList;
import java.util.List;
public class FilterChan implements Filter
{
private int index = 0;
private List<Filter> filters = new ArrayList<Filter>();
@Override
public void doFilter(Filter filter)
{
if (filters.size() < index+1)
{
return;
}
Filter f = filters.get(index);
index++;
f.doFilter(filter);
}
public FilterChan addFilter(Filter filter)
{
filters.add(filter);
return this;
}
public FilterChan removeFilter(Filter filter)
{
filters.remove(filter);
return this;
}
}
package com.djk.design.action.filter;
public class FilterOne implements Filter
{
@Override
public void doFilter(Filter filter)
{
System.out.println("第一个过滤器");
filter.doFilter(filter);
}
}
package com.djk.design.action.filter;
public class FilterTwo implements Filter
{
@Override
public void doFilter(Filter filter) {
System.out.println("第二个过滤器");
filter.doFilter(filter);
}
}
package com.djk.design.action.filter;
public class Client
{
public static void main(String[] args) {
FilterChan f = new FilterChan();
f.addFilter(new FilterOne()).addFilter(new FilterTwo());
f.doFilter(f);
}
}