责任链:评估替代实施

背景

下面的代码段是责任链的经典实现。仍然旨在解决“ 避免请求的发送方和接收方之间的耦合”这一问题。在不影响呼叫者的情况下,“链”仍然可以“增长”和“收缩”。

//Controller
public Output handleRequest(Input input){
    Output output;
    for(Strategy strategy : strategyList){
       StrategyOutput strategyOutput = strategy.execute(input);
       //modify the input if needed based upon the emitted output.
    }
    return output;
}

//Strategy1
public Class Strategy1 implements Strategy{

}

//Strategy2
public Class Strategy2 implements Strategy{

}

据我了解,与经典责任链相比,关注点分离在这里要干净得多。分隔为:

  • 单独的控制器(协调链)。
  • 单独的策略集。一个策略只会困扰自己,而不必费心调用其他策略(据说是责任链中的“链环”)。

问题:

  • 与经典责任链相比,此方法是否有任何主要缺点?
xclhuni 回答:责任链:评估替代实施

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3158400.html

大家都在问