问题标签 [chain-of-responsibility]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - java中多线程和异常处理的责任链
我有一个责任链的 Rest 服务调用,为了更好的性能,我们添加了多线程但无法处理异常请查找代码示例:从 Rest Service 方法开始
HandlerExecutor.java:
处理程序定位器.java:
处理程序.java:
基本处理程序.java
与 ConsoleHandler 相同,我们有 FileHandler、FinalHandlers
所以,问题是这些:
- run 方法返回 void 所以,如果
ConsoleHandler
抛出异常,有什么方法可以处理异常吗? - 如果执行的第二个处理程序失败,如何回滚?
java - 使用泛型实现责任链
所以我想实现责任链,但使用泛型,有上限。
当然,我可以拥有非泛型类,并在任何地方都将 Command 作为参数,这样就可以了。但是我不想在 doHandle 方法中使用强制转换来传递给相应的 Command 子类型。我想为每个子类型、泛型都有一个处理程序,然后将它们链接起来。
我得到的问题是:类型处理程序中的方法 doHandle(capture#3-of ? extends Command) 不适用于参数(C)
为什么如果 C 扩展命令?
java - 如何在 Java 中实现动态责任链?
我对业务逻辑验证有一组要求:
- 验证的每个独立步骤必须分开;
- 这些步骤的顺序可以由管理员定义;
- 可以禁用步骤。
- 每个验证步骤都不是用户定义的——即编译代码。
所以我想实现一个动态的责任链,从表中加载步骤顺序和类名,用Class.forName()
. 但是我不太喜欢将 className 存储在表中,因为这可能会导致潜在的问题(例如,重构验证器的名称只会破坏代码)。这就是我所做的:
当然,解决方案越灵活,就越复杂。不过,我想知道是否有办法保证上述要求而不将类名存储在表中?
c#-4.0 - 是否有用于验证的设计模式?
是否应该使用任何适当的设计模式来进行验证?
例如,假设我有一个应用程序,其中包含一个带有图标的工具栏,每个图标代表我文件系统上的一张图片。我在文档上拖动一个图标。拖放操作期间的验证可能是:
- 检查文件是否存在于文件系统中
- 检查用户是否有权拖动图标
- 检查文档是否打开,以便将图片放在上面
等等...
我想过使用责任链或装饰器模式。
谢谢!
c# - 管道处理引擎
P1流程执行,P1输出作为输入进入P2流程。P2 也将执行。只有当 P2 和 P3 完成过程时,P4 才应该启动。P4 进程不会启动,因为输入进程 P3 尚未处理(P2 输入现在可用)。
任何将触发 P4 执行过程的输入参数触发机制。我需要任何可以解决上述问题的标准设计模式或示例代码(C#)。
还需要我们可以在 .net 3.5 框架中并行执行进程的任何标准方式。
design-patterns - 责任链
如果我可以编写,为什么我需要使用 CoR if-else
,而不是通过多个处理程序,我可以找到我需要的任何处理程序并将处理委托给特定的处理程序。
我认为,CoR 没有被用作在多个处理程序中处理相同请求的管道(例如:https ://github.com/RichJones22/chainOfResponsibility_cpp/blob/master/main.cpp )。那么我为什么要使用 CoR 呢?
design-patterns - 队列或堆栈中的责任链与命令
为什么我需要使用责任链,如果我可以将所有命令加载到某个容器中并一一执行命令。这将连续处理一个请求。顺便说一句,我觉得它比 CoR 更好,因为您可以在运行时删除一些特定命令或替换为另一个命令,而对于 CoR,您需要创建另一个链来更改链中的某些内容,因为您无法访问链除了第一个元素。(实际上,它是一个单链表。)
java - 为什么我要在 switch 语句上使用责任链
考虑到你有几个验证。只有当要检查的对象属于某种类型时,这些验证才会生效。为什么我要在 switch 语句上使用责任链?
责任链示例
验证器工厂创建验证器链。一个验证器看起来像
带有 switch 语句的示例
java - 责任链的使用
我想使用模式责任链来检查位置(纬度和经度)是否在距离上。为此,我得到了一个布尔值,如果位置在距离上,则该值为真,否则为假。在模式之前 - 我的代码如下所示:
我的责任链代码的一部分(我有四个像这样的类):
代码可以工作,但由于“布尔返回”,它会遍历链,然后它会完全返回以执行此返回。
我的问题:首先 - 责任链是“替换”这个 if 语句的合适方式。有没有办法阻止链一直返回以执行所有返回,或者更确切地说,我可以使用什么来代替这个布尔值?
谢谢!
design-patterns - 责任链与有限状态机 - 差异
因此,作为一名电工和程序员,我认为我非常了解 FSM 设计模式。这是:
- 我们有一组
Nodes
, - 每个人都
Node
知道,该做什么,当程序在这个节点时, - 每个
Node
contains references to another chosen nodes
人,并且知道在什么条件下,他应该前往所选择的人。 - 在
event
或after processing
一个节点上,Node proceeds
到下一个选择的节点
我想,这对我来说很清楚。虽然最近,当我实施状态机时,一个人告诉我,它实际上是一个有点修改的责任链(不确定他是否正确)并且,我所做/拥有的是:
- 集合
Nodes
(不代表线性或树结构) - 节点有对象,知道在什么条件下他们应该跳转到哪个节点
- 每个节点都有自己的处理上下文(上下文的某些部分在节点之间共享)。
不幸的是,我担心由于法律问题,我不允许在这里粘贴类图。
另一方面,我们有责任链,我会(据我了解)以以下方式定义,即:
- 我们有一些
ItemToProcess
接口, - 我们有一些
Node
接口, - 节点只有一个下一个节点的引用,
- 每个节点处理
ItemToProcess
并将处理过的一个转发给nextNode
据我了解:
- 我们使用
Chain Of Responsibility
, 我们希望每个节点处理(或至少尝试处理)一个项目 - 责任链代表流程的连续和持续执行
- 我们
StateMachine
用来表示图 - 我们用于
StateMachine
执行计算,计算的顺序或种类可能因某些事件而异。
我想请您确认我对这些设计模式的理解,或者告诉我我在哪里理解错误。