Помощь в решении проблемы дизайна (расширение универсального интерфейса) - PullRequest
1 голос
/ 05 февраля 2011

Я являюсь частью студенческого проекта, и мы должны разработать продукт для компании, использующей Java EE.Как «ведущий архитектор» в проекте, я отвечаю за составление хорошего дизайна, который должен быть гибким для дальнейших расширений.

Справочная информация: Мы должны разработать веб-сайт с графическим интерфейсом перетаскивания с возможностью подключения данныхисточники с манипуляциями с данными для выполнения этих конкретных данных.Графический интерфейс должен быть универсальным и иметь возможность интеграции с будущими продуктами.Это означает, что мы не можем кодировать реализацию на уровне представления.Вместо этого мы будем использовать интерфейс, чтобы определить, какие манипуляции с данными возможны для всех видов продуктов.Тем не менее, каждый продукт может также использоваться для манипулирования данными для конкретного продукта (таким образом, расширяя интерфейс с помощью большего количества методов).

Проблема, с которой я столкнулся в приведенном выше сценарии, заключается в том, что я не понимаю, как мы можем передать эти "данные, специфичные для продуктаманипуляции »в GUI и говорят, что, в дополнение к общему интерфейсу, мы также обладаем этими действиями манипулирования данными ...

Теперь у меня была дискуссия с некоторыми из более опытных программистов из компании, и они сказалиМне кажется, что существует общее решение этой проблемы - более конкретно, известное как «шаблон наблюдателя».Они рисуют что-то вроде [1] на доске и объясняют, что можно было бы «зарегистрироваться» третьей стороне (getApplicationContext), которая, в свою очередь, могла бы передать интерфейс, специфичный для нашего продукта.Они объяснили, что это обычная проблема, чтобы избавиться от этих неприятных круговых зависимостей.

Теперь я посмотрел на шаблон наблюдателя и на то, как он работает, и я до сих пор не понимаю, как я должен решить проблему.проблема дизайна.Может ли кто-нибудь попытаться объяснить, как это получится в моем конкретном сценарии?У меня нет особых проблем с пониманием того, как это работает с «субъектами» и «наблюдателями».

Вот схема UML, в которой мы используем ссылку на конкретный продукт.Это то, что нежелательно и нам хотелось бы обойти.

(возможно, я все неправильно понял ...)

Извините, но я не могу изменить изображение на правильное.поскольку я новый пользователь ... Вот ссылка на обновленную диаграмму UML:

http://i55.tinypic.com/2mbfno.png

1 Ответ

0 голосов
/ 08 февраля 2011

Кажется, вы ищете шаблон проектирования Model View Controller . Шаблон Observer является лишь частью этого шаблона проектирования. В статье википедии .

приведено краткое описание того, как сделать это с помощью сервлетов Java и страниц JavaServer из Java EE
...