2013-04-07 2 views
1

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

Это правильный шаблон для использования? какие-либо предложения?

Благодаря

ответ

1

Если я вас правильно понимаю, вы должны иметь реализацию черного ящика ответа от провайдера платежей и в одно время этот модуль может быть использован одной компанией. На самом деле твоя идея выглядит неплохо. Мое предложение может быть использовано в шаблоне проектирования команд. Для каждого типа ответов: ОШИБКА, ОПРЕДЕЛЕННАЯ ОПЛАТА, ОТМЕНА ПО ОПЛАТЕ ПОЛЬЗОВАТЕЛЯ, УСПЕШНАЯ ОПЛАТА и т. Д. Каждая компания будет иметь свои собственные реализации. И каждая конкретная команда будет выполнять различные условия оплаты. Как и SuccessfulPayment, CanceledPayment ... реализует интерфейс ICOmmand. Эти конкретные реализации вы можете оставить в компаниях. Для вас единственное, что требуется, - это результат специфической обработки компанией реакции поставщика платежей. Например, вы будете использовать интерфейс ICommand, чтобы продолжить обработку в своей бизнес-логике.

+0

Спасибо Симеон, да, я думаю, он работает, что вы предлагаете, мне нужно прочитать об этом шаблоне. – gastoncs

+0

Я использую шаблон табличного шлюза, я вижу, как установить данные из ФОРМЫ (сообщения) в класс TABLE (клиент)? Я вижу, что этот шаблон вызывает метод на стороне клиента, который знает, как обрабатывать данные, но как я могу вытащить данные из формы в класс таблицы, в примерах, которые я видел, у клиентского объекта уже есть данные. – gastoncs

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