0

问题陈述:

每个报告都有多个任务。报表任务显示在表格中 每个任务都有不同的选项(A、B、D、E、X) 选项在表格列中显示为超链接

对于不同的角色和任务状态,显示的选项会有所不同。

即(状态 s1 和角色 r1)将显示选项 A 和 B

我可以知道我应该如何设计它以允许视图每次显示不同的选项?

我的初始设计:

有一个 hashmap 来存储这个选项和键,并用选项填充 TaskModel

我可以知道是否有更好的解决方案以及我可以使用什么样的设计模式?

4

1 回答 1

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";
}
于 2013-08-14T08:17:47.130 回答