Препятствует ли использование средств просмотра JFace хорошему разделению MVC?

StackOverflow https://stackoverflow.com/questions/1989636

Вопрос

Я пишу приложение с графическим интерфейсом, в котором хочу использовать Swing и SWT.Конечный пользователь каким-то образом укажет, что следует использовать (он не будет использовать оба одновременно!).В целом я предпочитаю SWT, и я смотрел на JFace, но кажется, что если я буду использовать его самые мощные функции, я увеличу связь между графическим интерфейсом пользователя и моделью и значительно усложню абстрагирование графического интерфейса, чтобы Swing можно было использовать. также используется.

Так ли это?Можно ли использовать JFace без привязки деталей графического интерфейса к модели или наоборот?

Это было полезно?

Решение

Насколько я знаю, использование средств просмотра JFace обеспечивает довольно хорошее разделение представления и модели.

Единственной жесткой связью здесь является выбор фактической реализации средства просмотра (например,использование TableViewer вместо TreeViewer для привязки вашей модели к виджету «Таблица» или «Дерево» соответственно).

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

проект UFace стремится предоставить именно то, к чему вы, по-видимому, стремитесь - единую реализацию пользовательского интерфейса, которая может работать со многими серверными модулями графического интерфейса (он вызывает Провайдеры):

На странице проекта UFace на момент написания этой статьи указана поддержка следующих провайдеров:

  • JFace/SWT
  • Качать
  • ГВТ

(Я также слышал слухи о некоторой работе по поддержке провайдера Qt Jambi)

Другие советы

Вы не можете переключаться динамически.JFace вызывает SWT.Вместо этого нельзя попросить вызвать AWT.

Что касается того, связывает ли JFace модель с графическим интерфейсом, то нет.Имеет набор модельных интерфейсов, но к ним можно приклеить любую понравившуюся модель.Вы должны сделать это аккуратно, если ваш клиент когда-нибудь захочет иметь возможность удалить JFace.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top