Каково лучшее решение для этой проблемы?
Это суперкласс
public class Views<T> {
private T controller;
public Views() {
}
public Stage getStage(Node object){
return (Stage) object.getScene().getWindow();
}
public T getController(){
return controller;
}
public void setController(T controller){
this.controller = controller;
}
}
У меня есть этот интерфейс:
public interface UserView extends Observer{
public void setLoginObjects(Parent root);
public void loginStartUI() throws Exception;
public void setCriarUserObjects(Parent root, User user);
public void criarUserStartUI(User user) throws Exception;
}
У меня есть этот подклассПросмотров:
public class UserViewImpl extends Views<UserController> implements UserView{
...
И у меня есть этот класс:
public class UserController {
private UserView view;
private UserDAOImpl model;
public UserController(UserView view, UserDAOImpl model) {
this.model = model;
this.view = view;
view.setController(this);
this.model.addObserver(view);
}
...
Какое лучшее решение для этой проблемы?Должен ли я собрать Views
и UserView
?(Проблема для этого решения в том, что у меня будет больше представлений, например, у меня есть ParqueView
и ParqueViewImpl
, которые в основном будут иметь те же методы, что и Views
, поэтому будет повторный код, и я хочу избежать этого)
Основная проблема заключается в том, что внутри моего UserController
я передаю параметр UserView
, который не имеет доступа к методам суперкласса, и мне нужен доступ к setController
, который находится в Views
классеНет смысла менять тип UserView
на Views в userController
из-за MVC