【问题标题】:Does Chain of Responsibility work here?责任链在这里有效吗?
【发布时间】:2017-08-20 11:18:45
【问题描述】:

我正在设计一个问题的解决方案,其中我有一个有分数的项目列表。例如。

Product    Score
   A       10.4
   B       7.4
   Z       5.4
   D       4.4
   C       4.2
   H       4.1
   G       3.4
   BN      32.41
   CV      2.3
   AV      1.6
   FG      10.7
   .
   .
   .
   .
   ........

这些项目必须经过一系列黑盒步骤..

评分项目---->第1步--(重新排名)--->第2步--(重新排名)---->第3步-(重新排名)--->最终结果

每个步骤都会根据产品的类型重新排列一些产品。例如。步骤 1 将确保电子产品进入前 10 名(它将使前 3 名固定的电子产品进入前 10 名)当第 2 步获得此列表时,它必须重新排名但不应该重新排列第 1 步确定的产品但是它应该在对其他人进行排名时考虑它。我在想责任链设计模式。大家觉得呢?

【问题讨论】:

  • 从你的描述来看,排名顺序在一定程度上很重要,我认为 CoR 绝对合适。这将使将来添加更多步骤变得容易。
  • 我认为设计模式最适合用作处理提议(或现有)设计中特定面向对象问题的方法。由于您仍在探索问题空间,因此在我真正清楚地了解我想如何解决问题之前,我不会太担心这个或那个设计模式。模式可以帮助您创建更好的解决方案,但您必须先通过(或两到五次)才能将自己锁定在任何给定的模式中。

标签: java design-patterns decorator strategy-pattern chain-of-responsibility


【解决方案1】:

Chain Of Responsability可以使用。
为每个步骤实现 ConcreteHandler。通过 setSuccesor(...) 方法为每个 Handler 定义一个链。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-26
    • 2015-09-16
    • 1970-01-01
    • 2011-02-04
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多