关于Controller接口设计的疑问

有个Controller是提交任务的,但是不同类型的任务传输的参数有几个不一样,需要根据不同类型的任务新建不同的Controller吗?

因为都是做提交任务这件事,所以目前就一个Controller,参数都封装在一个实体。
但是调用的时候有些参数就是null的,感觉有点怪?

public class submitJobVO {

  private String jobName;// 任务名称
  
  private String jobType;// 任务类型

  // 省略共用的字段..

 private String a_job_id; // 任务类型为a时才有值

 private String a_job_source; // 任务类型为a时才有值

 private String a_job_path; // 任务类型为a时才有值

 private String b_job_key; // 任务类型为b时才有值

 private String c_job_mark; // 任务类型为c时才有值

}

你这种情况,可以写一个Controller,然后将参数写在一个实体里面,根据不同的业务来对具体参数做非空等校验。

任务类型确定的情况下可以试一试用枚举替代。其次这个变量缩减为一个就可以了,由枚举确定变量值。你这些都是字符串把,有影响吗。
如果类型也不一样可以考虑适配器模式。

公司开发一般都是一个数据库表、一个实体、一个service、一个controller,一一对应。
不知道你是自己学习还是公司开发

既然做的事情都是一样的,那就直接抽成基类BaseController,里面写公共的任务传输方法和特殊的获取参数的抽象方法,看你的需求应该是可以用泛型来封装的BaseController<T>