5

我浏览了网页,但我找不到我的问题的答案...

假设我有 3 条链。我希望请求通过所有 3 个链(链是否可以处理请求并不重要)。是否可以使用 CoR 模式来解决这个问题?

为了更好地解释它 - 我有一个必须通过几组规则的列表。如果它通过了第一条规则,列表保持不变。然后它继续到第二条规则,第二条规则改变了一个列表。更改后的列表进入第三条规则,它通过并保存更改后的列表。 链条

4

1 回答 1

1

嗯,我没有看到任何反对理由不这样做。

你可以简单地声明你的Processor或者你怎么称呼它:

abstract class Processor {
    private Processor successor;

    public void setSuccessor(Processor successor) { this.successor = successor; }

    public List process(List input) {
        List processed = this.internalProcess(input);
        if (successor != null) { return successor.process(processed); }
        return processed;
    }

    protected abstract List internalProcess(List input);

}

然后你可以定义例如:

public class ProcessorNoProcess extends Processor {

    @Override protected List internalProcess(List input) { 
       // do nothing
       return input;
    }
}

那是你问的吗?

于 2015-11-30T21:29:05.970 回答