chain-of-responsibility相关内容

为什么我会在装饰器上使用责任链?

我只是在阅读责任链模式,我当我更喜欢使用它而不是 decorator 时,很难想象一个场景. 你怎么看?CoR 有特殊用途吗? 解决方案 责任链模式与装饰者模式的不同之处在于,你可以在任何时候打破链条.装饰器可以被认为是一次执行,而不与其他装饰器进行任何交互.链中的链接可以被认为是一次执行一个,因为它们每个都依赖于前一个链接. 当您可以将程序概念化为由链接组成的链时,请使用责任 ..

责任链模式仅仅是一个过大的杀伤力吗?处理程序列表可以完成相同的操作

在“责任链(COR)”模式中,我们创建了一系列处理程序。将请求传递到链中的第一个。它试图处理它。如果不能,则将请求转发到链中的下一个,依此类推。 例如Handler1 =新的ConcreteHandler1(); handler1.handle 公共类ConcreteHandler1 public void handle(){ if(可以处理) 处理请求 否则 concreteH ..
发布时间:2020-10-21 01:23:42 其他开发

责任链-Lambda函数实现

您将如何在Java 8中使用Lambda实施责任链模式?看起来如何? 我仅在这篇文章: 责任链 一个可以或可以不委托给另一个lambda,可以或可以不委托给另一个lambda的lambda. (如何将“下一个"引用作为lambda留给读者练习). 解决方案 我改编了 在此示例中,我们具有不同的角色,每个角色都有固定的购买限额和后继角色.角色用户每次收到超出其限制的购买请 ..

责任链与类别列表相比有什么优势?

最近,我正在与另一位程序员讨论重构包含"if"语句的巨大(1000行)方法的最佳方法. 代码是用Java编写的,但是我想这个问题也可能在其他语言(例如C#)中发生. 为解决此问题,他建议使用责任链模式. 他建议开设一个基本的“处理程序"类.然后,"Handler1","Handler2"等将扩展"Handler". 然后,处理程序将具有"getSuccessor"方法,该方法将返回n ..
发布时间:2020-05-02 05:16:58 Java开发

Java泛型:将泛型函数对象链接在一起

我一直在努力解决以下问题。我有一系列函数对象,每个函数对象都有自己的输入和输出类型,这些类型是通过java中的泛型类型参数定义的。我想将它们安排在一个链中,以便将原始数据输入到第一个函数,转换为输出类型,这是下一个对象的输入类型,依此类推。当然这对硬编码来说是微不足道的,但我希望代码可以插入到新的函数对象中。如果我只是省略了类型参数(只有最终的输出类型),这是事情的样子: public T ..
发布时间:2018-04-21 20:03:03 Java开发

责任模式链

有人可以简单地解释责任模式链吗?我发现wiki文章有点混乱。 解决方案 一个很好的例子是 java servlet过滤器 - 在HTTP请求到达目标之前执行的代码段。 链包含多个实例,每个实例都执行不同的操作 链中的每个实例可以选择传播到下一个例子,或者停止流程 所以,使用servlet过滤器,你可以有 一个过滤器,用于检查用户是否经过身份验证。如果他是,则过滤器传播到 ..
发布时间:2017-05-16 20:11:23 软件设计

什么是已知的“陷阱”关于责任感模式?

我一直在找到自己使用责任链模式在我目前的项目中,我经常会遇到3次,我想知道我是否对这个解决方案有一点过分的热情。具体来说,我一直在使用Apache Commons 链接项目。所以,我已经非常深刻的印象了如何将一些复杂的可互换的应用程序逻辑简化成一个更加凝聚和有组织的整体。然而,这个项目中的一些较新的人似乎很难“得到它”。你有什么经验?在实现过程中遇到什么问题? 到目前为止,我注意到只有当您尝 ..
发布时间:2017-05-14 21:51:13 软件设计

链责任设计模式与使用简单的if-elseif-else块有什么区别?

我刚刚查找“责任链”,而且我发现了这个 基本上,有一个抽象处理程序,然后是具体的处理程序,每个处理程序都实现了父抽象处理程序的handle方法。实现是这样的,起初有一个检查,看看这个特定的处理程序是否可以处理当前的请求,如果没有,那么它会将请求传递给它的后继者。 现在,我也可以使用一个简单的if-else条件块来做同样的事情。要从上面的链接中获取第一个例子,这里是我如何更改它: ..
发布时间:2017-05-14 11:03:04 软件设计

对于一个大的验证任务是责任模式的一个很好的赌注?

我需要构建一个过程,该过程将验证约200条验证规则的记录。记录可以是〜10种。有一些从验证规则到记录类型的分段,但是存在很多重叠,这阻碍了我将整个验证规则进行干净的分类。 在我的设计过程中,我正在考虑所有验证规则的责任模式链。这是一个好主意还是有更好的设计模式? 解决方案 验证通常是一个复合模式。当你把它分解掉的时候,你想从你想要做的 中分离你想要的,你会得到: 如果foo有效 ..
发布时间:2017-05-14 10:13:14 Java开发

为什么我会使用装饰品的责任链?

我正在阅读责任链模式,我是在我喜欢使用装饰器的情况下,无法想象一个场景。 你觉得怎么样? CoR有利基吗? 解决方案 事实上,您可以在任何时候打破链条,区分链来自Decorator模式的责任模式。装饰器可以被认为是一次执行,而与其他装饰器无任何交互。链接中的链接可以被认为是一次执行一个,因为它们各自依赖于以前的链接。 当您使用“责任链”模式时可以将您的程序概念化为由链接组成的链 ..

C#-Pipeline风格的事件模型

在ASP.NET Web应用程序,事件在particluar顺序触发: 为了简单起见,加载=>验证=>回传=>渲染 假设我想开发这种管道-styled事件 例如: 事件1 [“Audiance都在收集”,伙计们{事件2和事件3请等待,直到i信号}] $ b $后b事件1完成了它的任务 事件2 [{事件2,事件3“Audiance云集!我的任务已经结束} ] ..
发布时间:2016-10-10 19:03:17 C#/.NET