问题陈述:
每个报告都有多个任务。 报告任务显示在表格中 每个任务都有不同的选项(A,B,D,E,X) 选项在表格列
中显示为超链接对于不同的角色和任务状态,显示的选项将有所不同。
即(状态s1和角色r1)将显示选项A和B
我是否应该知道如何设计它以允许视图每次显示不同的选项?
我的首发设计:
使用hashmap存储此选项vs keys并使用选项
填充TaskModel我是否知道是否有更好的解决方案以及我可以使用哪种设计模式?
答案 0 :(得分:0)
我会为ReportTask
实例创建一个包装类,它将处理上下文敏感选项处理。
包装器看起来像:
class StatusRoleContextReportTaskWrapper {
private ReportTask;
public StatusRoleContextReportTaskWrapper(ReportTask task) { ... }
public Option[] getOptions() { /* return options based on role and status */ }
public static StatusRoleContextReportTaskWrapper[] getWrapped(ReportTask[] tasks) {
/* wrap tasks ... */
return wrappedTasks;
}
}
这是一个示例控制器方法。
public String reportTaskList(ModelMap model) {
ReportTask[] tasks = reportTaskService.getSome();
model.add("reportTasks", StatusRoleContextReportTaskWrapper.getWrapped(tasks));
return "taskListView";
}