结果组合物的推荐设计模式

时间:2013-11-12 20:20:04

标签: java design-patterns

我正在尝试使用设计模式,我想知道在以下两种情况下最好的做法是什么:

第一种情况: 我想在调用执行测试列表的某个方法后返回并打印结果。此列表可以进行排序,过滤等。

结果应该能够给出测试结果,排序方式,使用的过滤器,故障,发生时间等等。所有这些都可以/应该是(半)可选的,例子没有过滤器可以使用,或者我对任何排序都不感兴趣。也许我只想知道成功的测试,也许不是。

我有两种设计模式:工厂方法或复合材料。工厂需要很多创作者,我担心,复合材料可能会过度。 对其他模式的任何建议,或为什么一个优先于另一个?

第二种情况: 上面提到的分拣机。可以存在许多不同的分拣机(按字母顺序排列,首次出现故障等),我不知道如何组织它们。我想在某种TestSorterCollection类中声明很多静态Sorter,但这很难看。但是,不确定哪种设计模式更好。

1 个答案:

答案 0 :(得分:1)

首先,这看起来像是MVC架构模式的候选者。

  • 型号:测试结果数据
  • 控制器:排序和过滤逻辑
  • 查看:将控制器逻辑应用于一个或多个模型对象的结果

关于设计模式,排序算法(控制器逻辑)可以实现为一组Strategies。然后,将一个或多个测试结果对象传递给策略会返回一个视图,该视图可能是这些测试结果的子集。

视图可以根据您的需要以多种方式实施。它可以像Iterator一样简单地过滤掉某些测试结果,或者按照默认值以外的顺序进行迭代。如果您希望对相同的测试结果拥有大量的视图,那么它可能是Flyweight。如果您想要具有不同功能的不同类型的视图,它可以是Decorator

如您所见,有很多可能性。关键似乎是保持测试结果,逻辑和逻辑结果足够分离,以便它们可以独立变化(MVC)。