Шаблон фасада для применения в asp.net mvc - PullRequest
2 голосов
/ 16 февраля 2011

У меня есть приложение MVC2 со следующими классами:

-OrderModel

-LineOrderModel

-OrderController

-LineOrderController

В классе OrderController я вспоминаю некоторые значения веб-формы.До сих пор я создавал экземпляры каждой строки заказа (класс LineOrderModel) и OrderClass внутри контроллера.

Я пытался создать класс OrderFacade, чтобы инкапсулировать различные вещи, которые нужно делать при создании заказа.

Итак, в этом классе я создал такой метод:

public void saveOrder(int idProvider,decimal? price)
        {
            // Here I create instances of OrderModel and LineOrderModel
            // and assign their properties
        }

, но моя проблема в том, что я не знаю, как передать все строки заказа, захваченные из веб-формы.

Я думаю, что не имеет смысла создавать и передавать этому методу List с классом orderLines (потому что смысл в том, чтобы работать с Facade, а не с классом напрямую)

Как могЯ инкапсулирую различные строки (все со свойствами, такими как numberUnits, idProduct ...) в Список общих объектов, каждый из которых имеет эти свойства?

Может быть, что-то вроде List<List<object>>?

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

1 Ответ

1 голос
/ 17 февраля 2011

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

Но в вашем сценарии вам просто нужно заполнить данные непосредственно в классах модели - это цель классов моделей представления, чтобы использовать их в представлениях и контроллерах. Использование каких-либо пакетов свойств для передачи данных из контроллера в бизнес-логику не является хорошим решением.

...