Использование модели для представления общего состояния представления - PullRequest
3 голосов
/ 26 февраля 2011

Существует ли стандартная практика для представления состояния пользовательского интерфейса, который не связан ни с одним компонентом?

Например, интерфейс Swing может иметь серию вкладок с ограничением, что одна вкладка должна отображаться только один раз для данного типа сущности (это можно представить как HashSet). Или сообщение может дать результат последней выполненной операции. Или JPanel может быть связан с одним экземпляром объекта для целей редактирования.

Ответы [ 2 ]

3 голосов
/ 06 марта 2011

Я думаю, что вы описываете шаблон Model-View-ViewModel. Это все ярость в точечной сети. Главная ссылка Google для mvvm - это также статья MSDN , которая дает довольно приличный обзор.

2 голосов
/ 08 марта 2011

Да, вполне приемлемо создать модель для самого представления, которое полностью отделено от модели приложения.Swing уже делает это внутренне, отслеживая расположение элементов, строк и столбцов в таблицах и положение курсора в текстовых полях.

Я бы порекомендовал сохранить логику модели представления как слабо связанной с фактическим компонентомиспользуйте как можно более простой код, например, создайте отдельный класс для каждой ответственности или поведения, которое не расширяет фактический объект Swing.

Например, если мы хотим убедиться, что у нас только один экземпляропределенного типа JFrame, такого как диалоговое окно «Параметры» или даже главное окно приложения, это можно сделать с помощью одноэлементного класса, который содержит ссылку на фрейм и возвращает его, когда кто-то вызывает ваш метод, создавая его, еслион не существует, и делает его видимым, если он скрыт.Это очень распространено.

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