可配置系统的设计模式
我有一个有趣的设计问题,我将尝试在下面的玩具问题中简化:
我希望设计一个系统,其输出将是基于某些输入和中间处理的学生对象。流程如下:我有一个教室列表作为一种类型的输入。要生成输出,处理步骤如下:
- 按 X 岁以下(假设 10 岁)的学生筛选每个教室
- 按以下层次结构顺序的任何排列对筛选结果进行排序:身高、体重、臂长
- 返回前 8 名学生。
另一个输入可以只是我已经拥有并希望作为结果的一部分包含的学生列表。例如:输入 1:3 名学生的列表,输入 2:将运行上述处理步骤的 2 间教室的列表。
设计这样一个输入系统的最佳方法是:
- 输入类型 ,
{student list|classroom list}
- 过滤器类型 ,
{age|height|etc}
- 排序顺序,
{any ordering of height,weight,arm length}
- 返回次数
{how many students to return}
该系统应该足够灵活,以适应更多的输入类型和更多的排序顺序条目{即按鞋码对学生进行排序}。我可以使用什么数据结构来对本节的每个部分进行建模(即表示排序顺序标准的最佳方法是什么?是否有任何设计模式可以满足这些需求?任何有关架构设计的帮助将不胜感激!