2011-02-05 3 views
1

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

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

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

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

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

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

(может быть, я все это неправильно ...)

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

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

+0

Был ли этот вопрос слишком непонятным? Я думаю, что это должно быть проблемой, возникающей при разработке программного обеспечения ... Я просто пытаюсь сделать хорошую работу и узнать те вещи, которые я не понимал, чтобы я мог как можно лучше на следующей неделе. – Sebastian

ответ

0

кажется, что вы ищете является Model View Controller шаблон дизайна. Observer pattern является лишь частью этого шаблона дизайна. Существует краткое описание для этого с помощью Java Servlets и JavaServer Pages из Java EE на wikipedia article.

Смежные вопросы