У меня есть страница с формой в Wicket, где форма требует соавтора для выполнения своей работы. Соавтор вводится (для чего я использую Guice) и выглядит примерно так:
public class RegistrationPage extends WebPage {
@Inject
public RegistrationPage(RegistrationService service) {
this.service = service;
add(new RegistrationForm());
}
private class RegistrationForm extends Form {
public RegistrationForm() {
// setup
}
protected void onSubmit() {
service.doSomething();
}
}
}
Мне не нравится идея, что RegistrationService внедряется в RegistrationPage, когда в этом нуждается только RegistrationForm. Я мог бы изменить RegistrationForm для получения RegistrationService:
public RegistrationForm(RegistrationService service) {
this.service = service;
}
и удалите поле из RegistrationPage, но RegistrationPage по-прежнему используется для сквозной передачи.
Я предполагаю, что я спрашиваю, как лучше всего это делать? Можно ли это сделать, или, возможно, было бы лучше ввести саму форму регистрации на страницу:
public class RegistrationPage extends WebPage {
@Inject
public RegistrationPage(RegistrationForm form) {
add(form);
}
}
---
private class RegistrationForm extends Form {
private RegistrationService service;
@Inject
public RegistrationForm(RegistrationService service) {
this.service = service;
}
protected void onSubmit() {
service.doSomething();
}
}
Я бы предпочел это, так как хотел бы, чтобы регистрационная форма находилась в отдельном классе/файле. Я новичок в Wicket, поэтому не знаю, что такое норма - может ли кто-нибудь показать мне путеводную звезду? :)