【问题标题】:Chaining of responsibility pattern takes different parameter types?责任链模式采用不同的参数类型?
【发布时间】:2016-04-08 04:12:20
【问题描述】:

我已经阅读了chain of the responsibility pattern,示例只是普通打印。如果我想将更困难的操作链接在一起怎么办,例如,现实生活中有一些用例:

接受请求, 请求->处理程序1(请求,整数)->处理程序2(整数,字符串)->处理程序3(字符串,长),

其中每个处理程序接受一些参数输入,并以另一种参数类型生成输出。我们可以使用 Generic 想法将这些处理程序链接在一起吗?

public abstract class Handler <Input, Output> {
    public void setSuccessor(Handler handler);
    public abstract Output handleRequest(Input in);
}

我希望我能清楚地阐明这些问题。 谢谢!

【问题讨论】:

    标签: java design-patterns chaining


    【解决方案1】:

    在责任链中,链中的每个元素都必须与下一个元素一起设置,因此它必须预先知道接口应该是什么。在很多情况下,上下文正在被传递。

    您确定您手头没有序列,其中处理程序 2 取决于处理程序 1 的结果来完成其工作吗?如果是这样,责任链就不会成功。

    在编译时使用责任链,您不知道哪些步骤是必要的,但例如当它们来自配置时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      相关资源
      最近更新 更多