113得票10回答
避免在Java中使用instanceof

一连串的“instanceof”操作被认为是一种“代码异味”。标准答案是“使用多态性”。在这种情况下,我该怎么做呢? 有许多基类的子类;它们中没有一个受到我的控制。类比的情况是Java类Integer、Double、BigDecimal等。if (obj instanceof Integer)...

75得票10回答
为什么我会选择使用职责链模式而不是装饰器模式?

我正在学习“责任链模式”,但我很难想象在何种情况下会使用该模式,而不是装饰器模式。 你认为呢? 责任链模式有特殊用途吗?

19得票5回答
责任链模式与类列表相比有哪些优势?

最近,我和另一个程序员讨论了重构一个有1000行“if”语句的方法的最佳方式。 代码是用Java编写的,但我认为这个问题也可能发生在其他语言中,比如C#。 他建议使用责任链模式来解决这个问题。他提出了一个基础的“Handler”类,然后“Handler1”、“Handler2”等会扩展“H...

19得票8回答
“责任链模式”和“策略模式”的区别是什么?

我提出这个问题是因为我几天前在SO上提出了另一个问题。 我不得不解决一个特定的问题,在得到两个回复后,我意识到两个模式可以帮助解决这个问题(以及任何其他类似的问题)。 责任链模式 策略模式 我的问题是: 这些模式之间究竟有什么区别?

17得票6回答
用什么替换巨大的开关语句?

我有一段代码可以解析一些模板文件,当它找到一个占位符时,会将其替换为一个值。类似于:<html> <head> <title>%title%</title> </head> <body bgcolor="%color%"...

14得票2回答
对于一个大的验证任务,责任链模式是一个好的选择吗?

我需要构建一个流程,该流程将根据约200个验证规则验证记录。 记录可以是约10种类型之一。 从验证规则到记录类型存在一定的分段,但存在大量重叠,这使我无法清晰地对验证规则进行分组。 在我的设计中,我考虑使用责任链模式来处理所有验证规则。 这是一个好主意吗?还是有更好的设计模式?

13得票3回答
如何在责任链中注入下一个处理程序的依赖项?

在我的当前项目中,我使用了相当多的责任链模式。 然而,我发现通过依赖注入来配置这个链有点笨拙。 鉴于这个模型:public interface IChainOfResponsibility { IChainOfResponsibility Next { get; } vo...

12得票2回答
关于责任链模式,有哪些已知的“陷阱”?

我发现自己在目前的项目中经常使用责任链模式(对我来说,3次就是经常),我想知道我是否过于热衷于这种解决方案。具体来说,我一直在使用Apache Commons chain project。到目前为止,我一直很惊讶它如何将许多复杂的可互换的应用程序逻辑组合成一个更加有凝聚力和有组织性的整体。然而...

12得票3回答
责任链模式:循环或者下一个?

我正在实现一种责任链模式。 我有不同的策略可以组合成一个列表,我有一个处理器来处理这个策略列表。每个策略都可以处理自定义输入并选择是否继续处理其他策略。 interface Policy { public boolean process(CustomInput input); ...