Swing - лучший способ взаимодействия между представлениями? - PullRequest
6 голосов
/ 16 марта 2012

В приложении Swing, как лучше всего передавать данные (взаимодействовать) между двумя представлениями?

Глядя на сеанс связи в Учебном пособии по SCJP 6 , там написано:

Все нетривиальные ОО-приложения представляют собой смесь многих классов и интерфейсы работают вместе. В идеале все взаимодействия между объектами в ОО-системе следует использовать API, другими словами, контракты, соответствующие классы объектов.

Если бы я понял это правильно, лучшим способом было бы создать интерфейсы (контракты) для каждого представления, и при необходимости использовать эти методы интерфейсов для извлечения данных. Это хороший способ? Тратить хорошее время на создание множества интерфейсов, чтобы сказать, что экспонируется представлением - это нормально?

Еще один способ, которым я считаю, - иметь классы для хранения данных (модели) представления. В этом случае хороший подход - получить доступ напрямую к этой модели классов?

Заранее спасибо.

Ответы [ 2 ]

6 голосов
/ 16 марта 2012

Понятие разделяемой модели пронизывает Swing, как указано в Обзор архитектуры Swing .Как правило, каждая модель представлена ​​интерфейсом;некоторые включают AbstractXxxModel с некоторыми основными событиями сантехника;и многие имеют DefaultXxxModel со стандартной реализацией.

3 голосов
/ 16 марта 2012

Это полностью зависит от того, какой дизайн вы делаете. Временами выбор дизайна, который мы предлагаем, лучше подходит для совместного использования данных View, но он разрушает другие аспекты вашего программного обеспечения. Таким образом, чтобы сбалансировать, вы должны сделать выбор дизайна, чтобы ваше приложение работало гладко.

Я лично предпочитаю шаблон проектирования MVC. Это работает для меня каждый раз! Узнайте больше о MVC на:

Контроллер модельного представления

Удачи!

Примечание. В MVC два представления никогда не взаимодействуют друг с другом, вместо этого они используют контроллеры для получения данных из модели, и в основном каждое представление имеет контроллеры со ссылкой на свою модель данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...