Предоставить две формы для ModelDriven
У меня есть этот код для реализации модели управляемого механизма.
public class Input_newAction extends CommonAction implements ModelDriven<InputForm> {
private InputForm form = new InputForm();
@Override
public InputForm getModel() {
return form;
}
}
Проблема в том, что мне нужно передать другую форму Input_newAction. Как это сделать?
public class Input_newAction extends CommonAction implements ModelDriven<InputForm>,
ModelDriven<CopyForm> {
...
}
1 ответ
Вы не можете реализовать две или более специализации одного и того же интерфейса. Вместо этого вы можете создать интерфейс или абстрактный класс для форм, которые будут специализировать ModelDriven
и вернуть этот интерфейс через реализацию getModel()
из ModelDriven
, Когда вызывается действие, вы можете проверить какое-либо условие (либо параметр, либо метод, либо отображение) и вернуть соответствующую модель, чтобы соответствовать указанному условию.
public class Input_newAction extends CommonAction implements ModelDriven<CommonForm> {
private boolean par;
public setPar(boolean par){
this.par = par;
}
@Override
public CommonForm getModel() {
if (par)
return inputForm;
else
return copyForm;
}
}