Представьте себе приложение Java Swing или Winforms. У меня есть некоторые формы или представления в моем приложении, каждое из которых связано с контроллером. В каждом контроллере у меня есть ссылка на конкретное представление c, например:
public class Controller1 {
ExtendedForm1 view;
}
public class Controller2 {
ExtendedForm2 view;
}
Это позволяет мне получить доступ к определенным c publi c членам в каждой форме.
Но я хочу написать несколько распространенных методов, например, HideView (). Я не хочу повторять код, поэтому я создаю BaseController и создаю его подкласс, но затем возникает проблема. Представьте себе:
public abstract class BaseController {
protected Form view;
protected void HideView() {
// hides the view
}
}
public class Controller1 extends BaseController {
public Controller1() {
view = new ExtendedForm2();
}
}
Теперь я могу просто вызвать метод HideView во всех моих контроллерах, но у меня нет доступа к указанным c элементам управления представлений из них. Как это решить?
При написании этого я думал об использовании двух ссылок для формы, одна в BaseController с типом формы, а другая в каждом расширенном контроллере с указанным типом формы c, но я думаю, что это выглядит немного странно .. .