2016-06-22 3 views
0

У меня вопрос о контроллере модели.Как просматривать и управлять контроллером в MVC?

Я смущаюсь о том, как View и контроллер могут общаться друг с другом.

У меня есть класс представления, который принимает в модели, например:

View v = new View(model); 

Я также получил поле ActionListener в View класса и в этом конструкторе я передаю в модели и экземпляр тока класс (вид):

private ActionListener listener; 
. 
. 
. 
listener = new Controller(model,this); 

Теперь в моем классе контроллера я продлил ActionListener и переходя в модели и класса представления:

public class Controller implements ActionListener{ 
    public Controller(model m, View v){ 
. 
. 
. 

Теперь мой вопрос: можете ли вы передать класс вида в конструкторе класса контроллера в контроллере представления модели? Причина, по которой я перехожу в представлении, заключается в том, что иногда я хочу закрыть окно просмотра или хочу передать значения из текстового поля. Также иногда я хочу вызвать метод из класса view. Это правильный способ сделать MVC?

Благодаря

ответ

0

Вы можете задать 5 разных людей, как реализовать MVC, и вы получите 5 различных ответов. Существует так много разных способов сделать это. Я бы больше читал о MVC и других шаблонах проектирования, таких как MVP. У Мартина Фаулера есть отличные статьи на GUI patterns. Существует также this article, который имеет большую информацию.

Чтобы ответить на ваш вопрос. Нет ничего плохого в том, что контроллер знает зрение. Контроллер - это тот, который должен обрабатывать ввод пользователя (другими способами вы могли бы рассмотреть MVP). Я бы создал интерфейс и только контроллер знал интерфейс для представления. Поэтому создайте что-то вроде IView и взгляните на этот интерфейс. Таким образом, у вас нет тесно связанного представления и контроллера, и вы можете делать такие вещи, как создание макетного представления для тестирования.

Смежные вопросы