Лучший способ для GUI Swing для общения с доменной логикой?

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

7
задан Andrew Swan 16 September 2008 в 06:55
поделиться

3 ответа

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

2
ответ дан 7 December 2019 в 16:47
поделиться

MVC является фантастическим для отдельного виджета, однако это становится немного непослушным, когда Вы имеете pages и forms с большим количеством виджетов.

Одна вещь, которую могло бы стоить изучить (и я не подтверждаю ее, я на самом деле не использовал ее, просто реализовал что-то очень похожее для меня), Бобы, Связывающие Платформу (JSR295)

1
ответ дан 7 December 2019 в 16:47
поделиться

Я использовал шаблон The Observer (использующий волшебство AspectJ) в прошлом с некоторым успехом, но нашел, что, если Вы не были осторожны, это быстро стало кластером.. uhh.. щелчок?

Быстро стало трудно справиться и самое главное чрезвычайно трудно отладить.

Править:

Для расширения немного на моем ответе мы использовали SWT, не Swing, таким образом, YMMV. Мы в основном использовали AspectJ для снятия трубки переноса данных от компонентов UI до объектов модели. Эти объекты модели были немым POJOs.

Фактическая бизнес-логика была сделана путем 'наблюдения' объектов модели с AspectJ и исчерпывания необходимого события, если они изменились. Таким образом, если бы Вы изменились, то значение в текстовом поле AspectJ запустило бы и скопировало бы то значение в POJO. Если бы то поле в POJO имело событие на нем для бизнес-логики, которая затем стреляла бы. Если бы та логика изменила какой-либо POJOs (и это могло), AspectJ заметить и скопировать значение с POJO в компонент UI.

0
ответ дан 7 December 2019 в 16:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: