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