Я использую ASP.NET MVC 2.Как обрабатывать типы платежей с изменяющимися свойствами в наиболее элегантный способ
Держа это просто, у меня есть три вида оплаты: кредитная карта, e- проверить, или «счет меня позже». Я хочу:
- выбрать тип один платеж
- дисплей несколько полей для одного типа оплаты на мой взгляд
- выполнения некоторых логики с помощью этих полей (специфичные для типа)
- дисплей вид подтверждения
- запускать более определенную логику, используя эти поля (специфические для типа)
- дисплея вида квитанции
Каждый тип платежа имеет поля, специфичные для типа ... возможно, 2 поля, может быть, больше. Пока я знаю, сколько и какие поля, но еще можно добавить. Я считаю, что лучшая вещь для моих представлений заключается в том, чтобы иметь частичный вид для каждого типа оплаты для обработки разных полей и позволить контроллеру решить, какой частичный рендер (если у вас есть лучший вариант, я открыт). Моя реальная проблема исходит из логики, которая происходит в контроллере между представлениями. Каждый тип платежа имеет переменное количество полей. Я бы хотел, чтобы все было строго типизировано, но похоже, что какой-то словарь является единственным вариантом. Добавьте к этой конкретной логике, которая выполняется в зависимости от типа платежа.
Чтобы сохранить строго типизированные данные, я создал класс для каждого типа оплаты. Нет интерфейса или унаследованного типа, так как поля различаются для каждого типа оплаты. Затем у меня есть метод Submit() для каждого типа оплаты. Затем, когда контроллер решает, какой частичный вид отображать, он также назначает цель действия отправки.
Это не изящное решение и кажется очень неправильным. Я протягиваю руку. Как бы вы это сделали?
Вот что говорят другие ребята из моей команды. Мне нравится тостерная аналогия. –