Какой шаблон дизайна я должен использовать? используя пружинный каркас - PullRequest
1 голос
/ 31 декабря 2010

Мы создаем сайт аукциона.Существуют разные типы аукционов.и в зависимости от типа аукциона проводится объявление победителя.

Например: - * В аукционе одного типа: -Пользователь, который предлагает более высокие выигрыши.* В другом типе: - выигрывает пользователь с минимальной ставкой.* в некотором типе: - владелец определяет победителя.* В каком-то виде: - Первые 10 претендентов выигрывают аукцион.

Кажется, что Strategy Pattern - хороший вариант для разработки модуля, который определит «Победителя аукциона».

Итак

В зависимости от «типа аукциона», система выберет соответствующий логарифм для определения победителя. Будут предоставлены все параметры, требуемые типом аукциона для выбора победителя.Я думаю использовать шаблон стратегии (может быть в AOP) для реализации модуля winnerDeclare.

Приложение основано на SpringFramework, может кто-нибудь предложить мне элегантный дизайн для решения проблемы, упомянутой выше.Какой шаблон я должен использовать?Должен ли я пойти на АОП?

Я могу предоставить более подробную информацию, если потребуется.

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 31 декабря 2010

В этом вопросе нет ничего специфичного для Spring.Да, шаблон стратегии, вероятно, является правильным выбором.

Создайте интерфейс службы, чтобы определить победителя аукциона и создать одну или несколько его реализаций.В вашем бизнес-коде всегда указывайте интерфейс службы, а не класс реализации, чтобы вы могли легко переключать реализации (с Spring или без него).(Прочтите Эффективная Java Джошуа Блоха, чтобы лучше понять программирование с интерфейсами)

Забудьте Spring AOP.Это решает много проблем, но не твоих.Ваша проблема состоит в том, чтобы определить основные модули вашего приложения и соединить их вместе (что обычно делается с помощью Spring или другого контейнера DI)

По сути, когда вы создаете интерфейс службы, вам нужно решить, «Чтоэта вещь делает?И когда вы реализуете интерфейс, вы решаете: «Как эта штука должна это делать?»

3 голосов
/ 31 декабря 2010

Это широкий вопрос, и мой ответ - попытаться сосредоточиться на правильном моделировании проблемы, используя простые объектно-ориентированные структуры, а не на том, «какой шаблон здесь подходит».Скорее всего, появятся шаблоны, и вам не нужно сразу называть их.

Также я предлагаю забыть об АОП, если вы новичок в Spring.Это не поможет вам прямо сейчас.Кроме того, использование AOP ради его использования также не поможет.

ps Стратегия здесь хороша.

0 голосов
/ 31 декабря 2010

вы можете использовать следующий сценарий:Один из основных компонентов, у которого есть список компонентов.Каждый компонент представляет поток («самая высокая ставка», «самая низкая ставка» и т. Д.).Давайте назовем их flowBeans.Каждый flowBean должен иметь один или несколько choiseBean.ChoiseBean решает, должен ли flowBean выполняться или нет, на основе входных данных аукциона.Извините за неспособность привести пример ..PS: Помимо моего предложения, я согласен с cherouvim!

...