Посмотрите на JGoodies Binding : в нем подчеркивается использование PM ( PresentationModel ), где хранится все состояние графического интерфейса пользователя (и привязано к фактическим компонентам графического интерфейса пользователя).
Каждое Представление имеет связанный PM, который устанавливает связь с моделью домена. ПМ может жить без просмотра (но обратное неверно).
PM не должен иметь никаких зависимостей, связанных с GUI (так что он может тестироваться модулем без GUI), следовательно, нет ссылки на JTextField, JButton ...
Однако PM обычно включает Action
s, которые прикреплены к кнопкам из View . Действия не являются фактическими компонентами графического интерфейса (хотя они принадлежат пакету javax.swing
.
Я сказал "нормально", потому что некоторым действиям может потребоваться отобразить окно сообщения, открыть новое окно ... Этот тип действий затем следует поместить в другой класс. Обратите внимание, что Карстен Ленцш (автор JGoodies) не говорит об этом случае в своих презентациях (это мой собственный способ разобраться с этим делом).