2012-03-16 3 views
6

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

Глядя на Coupling сессии в Study Guide to the SCJP 6, он говорит:

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

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

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

Заранее благодарен.

ответ

6

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

+0

Похоже, у вас есть каждый пример для каждой ситуации :-) –

3

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

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

Model View Controller

Удачи!

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

+0

+1 для MVC; вот связанный [пример] (http://stackoverflow.com/a/3072979/230513). – trashgod

+0

@trashgod спасибо за пример! –

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